问题标签 [junit5]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
14494 浏览

junit5 - 如何更改 JUnit5 中的测试执行顺序?

JUnit4 有@FixMethodOrder注释,允许使用测试方法执行的字母顺序。是否有类似的 JUnit5 机制?

0 投票
2 回答
52681 浏览

java - JUnit5 中的 assertAll 与多个断言

是否有任何理由对多个断言进行分组:

而不是这样做:

0 投票
1 回答
1439 浏览

intellij-idea - 在 Intellij IDEA 2016.3 中更改 JUnit 版本?

在将 JUnit5 添加到我的依赖项(通过alt+enter并选择这样做的选项)以便我可以通过右键单击运行测试之后,测试运行器无法检测到我的任何测试。在咨询了一些同事之后,他们似乎需要 JUnit4。但是,我到处寻找,找不到将 JUnit 依赖版本从 JUnit5 更改为 Junit4 的方法。

有没有标准的方法来做到这一点?

0 投票
4 回答
13895 浏览

gradle - JUnit5 标签特定的 gradle 任务

我使用以下注释来标记我的集成测试:

这是我build.gradle用来排除这些测试的过滤器gradle build

到目前为止,一切都很好。

现在我想提供一个专门运行我的集成测试的 Gradle 任务——推荐的方法是什么?

0 投票
4 回答
135055 浏览

java - 如何在 JUnit5 中使用 Mockito

如何在 Mockito 和 JUnit 5 中使用注入?

在 JUnit4 中,我可以只使用@RunWith(MockitoJUnitRunner.class)注解。在 JUnit5 中是没有@RunWithAnnotation 的吗?

0 投票
3 回答
4027 浏览

java - JUnit 说我的测试方法“无法解析为独特的方法”

尝试使用 IntelliJ IDEA 学习 JUnit 5。创建了一个测试类并尝试测试一种方法。这是消息(见第三行):

我不明白为什么无法解决该方法:它可以编译并且肯定存在:

我已经定义了这个:

更新:退出并重新启动 IntelliJ IDEA,我现在收到无法解析导入符号“junit”的消息,以及各种注释“@beforeEach”、“afterEach”和“Test”。

更新 2:在测试类中找到并修复了一个丢失的分号,但没有变化。注意:在我没有测试的一些类中存在编译错误,但我将测试运行配置设置为“构建,无错误检查”。这是正确的吗?我还尝试使用 JUnit 4 创建相同的测试(具有不同的类名),但这也不起作用。

以下是错误消息的前几行:

0 投票
1 回答
114 浏览

junit5 - 有没有办法根据junit5中的标签进行断言?

我有一个基于 JUnit 4 的测试系统,它根据一些自定义注释强制执行测试策略。特别是,我可以注释方法并让测试系统从这些方法强制超时和资源访问。

例如,使用 @Medium 注释的测试必须在 60 秒内完成,并且无法访问网络。

缺少自定义注释的测试被归类为“小型”测试,必须在 10 秒内完成,并且无法访问网络或文件系统(例如,确保单元测试实际上是单元测试)。

测试系统还确保在尝试任何中等测试之前通过所有小测试。在尝试任何大型测试等之前,必须通过所有中等测试。

在 JUnit 4 之上实现这一点相当简单,只需要定制系统的几个关键部分。

我正在探索将其迁移到 JUnit 5,并且我想知道是否有一个好方法可以做到这一点。新的发现和过滤机制将真正简化测试排序,但是随着运行器的移除,我不确定如何执行测试大小调整策略。

注意:让测试本身强制执行策略是行不通的,因为我需要确保在不了解测试系统的情况下编写的测试执行了小测试策略。

我相信我可以创建一个自定义测试引擎,但我认为这可能有点矫枉过正。

0 投票
1 回答
1514 浏览

java - 无法使用 Maven 执行 Junit5 测试

Maven执行

我正在尝试junit5用于我的一个 Maven 项目,但无法在使用test阶段执行单元测试 -

我得到的输出是 -


尝试实施@ Surefire 提到的解决方案没有选择 Junit 5 测试来将依赖项更新为 -

并将插件更新为 -

但输出保持不变。

问题- 这个自定义提供程序是否不再受支持,或者是否有任何解决方案可以使用maven,junit5和/或junit5-api 当前执行测试?

注意- 测试执行在 JUnit-4 上运行良好。

0 投票
1 回答
2125 浏览

java - 使用 junitPlatform 时设置系统属性

在使用 Gradle 执行 JUnit 5 测试时,我找不到如何设置系统属性。标准test任务可以配置如下:

但是,junitPlatform任务似乎没有这样的选项。

0 投票
2 回答
2565 浏览

java - Discovering tests on provided classpath via LauncherDiscoveryRequest

I am trying to discover JUnit 5 tests with the help of LauncherDiscoveryRequest as described in the user guide. The code I am using looks as follows:

Does LauncherDiscoveryRequestBuilder only auto-discover tests on the classpath of the JVM running this code? I tried using the methods DiscoverySelectors.selectClasspathRoots and DiscoverySelectors.selectClasspathResource as selectors to provide root directories to be searched for test classes. However, I wasn't able to discover any tests. Do the parameters for selectClasspathRoots and selectClasspathResource have to point to the root directory containing the class files organized by package or do you provide the full path to each test class file?

I tried the following where /some/dir represents the root directory containing test class files:

I had a look at LauncherDiscoveryRequestBuilderTests.java but it wasn't very useful in figuring out why my example code doesn't work. How do I best diagnose the issue?

I am using the following dependencies:

  • org.junit.platform:junit-platform-engine:1.0.0-M3
  • org.junit.platform:junit-platform-launcher:1.0.0-M3