当前位置: 首页 > 知识库问答 >
问题:

如何测试JUnit Jupiter(JUnit 5)扩展

杨学真
2023-03-14

有没有办法集成测试我的JUnit Jupiter扩展?当然,我可以测试扩展用法的一个很好的例子,但我想测试如下内容:

  • 它没有通过预期的测试吗?
  • 测试结束时写的报告是否正确?

对此有内置的支持吗?

共有2个答案

仰成天
2023-03-14

您不应该为自己的Junit扩展执行集成测试。Junit 5 API非常非常稳定,我敢打赌,您的扩展在Junit的整个生命周期中都会起到相同的作用。集成测试在不断发展的环境中很有用,但Junit只会添加特性,从不更改它们(除非有bug)。

如果您为自己的Junit扩展执行集成测试,就像您在测试Junit本身一样。为什么要测试Junit而不是扩展呢?让Junit开发者来测试Junit,除非你认为你发现了一个bug。但是为了测试Junit而测试Junit是浪费你自己的时间,即使你不自觉地认为你只是在测试你自己的扩展。

因此,这种测试应该通过让您的用户向您报告问题来长期进行:“嘿,AwesomeExpress适用于JUnit 5. A. B,但不适用于5. X. Y”,然后找出他们这样说的原因,如果问题不在于您的扩展,则使用Junit报告。

但是,请确保您已对扩展进行了单元测试。

洪星文
2023-03-14

没有明确的Jupiter扩展测试html" target="_blank">框架——但是在1.4版本中,将会有平台测试工具包,您可以使用它一次性执行Jupiter引擎和您的扩展,并断言测试运行的结果。

有关详细信息,请参阅:https://junit.org/junit5/docs/snapshot/user-guide/#testkit,除了该留档之外,在JUnit 5的“平台测试”项目中查找平台测试套件的用法。例如在:https://github.com/junit-team/junit5/blob/master/platform-tests/src/test/java/org/junit/platform/testkit/engine/ExecutionsIntegrationTests.java

 类似资料:
  • 在JUnit5中,我试图获得一个从扩展运行的测试类方法。我正在使用JUnit5扩展接口TestWatcher,并重写testFailed()方法。 这个扩展的目的是在测试类的Selenium WebDriver浏览器中拍摄失败的屏幕快照,并将其附加到该测试的诱惑报告中。test class方法有实例化的浏览器和注释,用于附加到Allure。并且我的takeScreenshot方法依赖浏览器和来自测

  • JUnit5API中有几个可用的扩展点。 null 我可以使用相同的模式,因为上的可见性。 下面有几个具体的例子来演示: > 基于系统属性启用测试的。这可以通过一些反射和使用或样式的进行测试,但是当并行测试执行时,处理起来似乎更加复杂,可能会出现问题。此示例展示了“如何提供实际的并对结果进行断言”的示例。 扩展测试的自定义测试引擎是正确的方法吗? 那么,如何测试各种扩展实现而不依赖于内部API,并

  • 我正在迁移到JUnit5,我想知道在JUnit5中是否有一种简单的方法可以知道测试何时失败,就像我们在使用TestWatcher的JUnit4中那样。 我做了一些研究,发现了一些类似的问题,但仍未解决,比如这样一个问题:https://github.com/junit-team/junit5/issues/542因为大多数问题都很老,所以我想问一下,以防最近有一个解决方案。 想法是能够做一个屏幕截

  • 我有简单的测试 为什么maven和intellij不能执行Junit5测试?这方面的工作是什么?surefire版本应该已经支持JUnit5测试。

  • 问题内容: 我写了JUnit5扩展。但是我找不到方法如何获得测试结果。 扩展看起来像这样: 有什么提示如何获得测试结果? 问题答案: 正如其他答案所指出的那样,JUnit会将失​​败的测试与异常进行通信,因此可以使用来了解发生的情况。请注意,这很容易出错,因为以后运行的扩展程序仍可能无法通过测试。 另一种方法是注册自定义TestExecutionListener。不过,这两种方法都有点round回

  • 如何使用JUnit5测试抛出NullPointerException的方法。但是我在方法中捕获到了这个异常,因此test以错误结尾:“Expected java.lang.NullPointerException to be thrown,But nothing was thrown”。 谢谢

  • 我有一个类,它有一个方法。我正在做相应的测试,但是我还不能验证是否抛出了定制的异常,我使用的是JUnit5。 我已经复习了这里,但答案并没有帮助我,这是我根据一个示例编写的代码:

  • 我有一个工作环境,包括我不管理的bom和JUnit5测试,除非我从如果我从它们不会被maven surefire插件拾取。我阅读了许多部分,并在一个较小的项目中进行了测试,它的工作和拾取,我不知道该在这篇文章中包含什么,因此您有足够的信息来查看问题所在。此外,如果有人能解释我阅读的导入的幕后内容,JUnit 4和5都需要使用surefire即 与版本 我很感激。 注意到 < li >我的测试都在s