java - 我可以在测试运行时跳过 JUnit 测试吗?

标签 java testing junit

假设我想从我的 IDE(Intellij IDEA 或 eclipse)手动运行 4000 个 JUnit 测试;前 1000 次测试运行得非常顺利(假设所有 1000 次测试都需要 3 分钟),但测试 1001 需要 30 多分钟。 有没有一种方法可以跳过测试 1001(当它仍在运行时)并让测试 1002(和其他测试)继续进行。我不想@Ignore 测试 1001 并重新运行套件,因为我已经有了测试 1-1000 的答案;我也不想选择测试 1001-4000,因为它需要太多时间。

我想要某种按钮 - 跳过当前测试 - 可以在测试运行时按下。

如果不存在这样的功能,是否需要由 IDE 开发人员或 JUnit 开发人员对其进行增强?

最佳答案

这对于使用 Assume 的 JUnit 4 实际上非常简单。 Assume 是一个类似Assert 的辅助类。不同之处在于 Assert 将使测试失败,而 Assume 将跳过它。

常见的用例是 Assume.assumeTrue( isWindows() ) 用于仅适用于 Windows 文件系统的测试。

所以你可以做的是定义一个系统属性skipSlowTests并添加

Assume.assumeTrue( Boolean.getBoolean("skipSlowTests") )

在您通常想跳过的慢速测试开始时。创建一个将属性定义为 true 的 Eclipse 启动配置,您可以方便地在两者之间切换。

如果您想运行一个慢速测试,请在 Eclipse(或整个类)中选择该方法并使用上下文菜单中的“作为 JUnit 测试运行”。由于该属性默认为 false,因此将运行测试。

关于java - 我可以在测试运行时跳过 JUnit 测试吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10410025/

相关文章:

java - IntelliJ Idea无法使用Maven解决Mockito和JUnit依赖关系

java - 在 Android 中运行单元测试时, Intent 解析为不同的进程

java - 具有不可预测的外部依赖性的单元测试代码

java - 创建大小为 n 的 boolean 数组的所有可能方式?

java - 如何检查当前系统日期是否为 1 个月前

java - 了解 Java 多线程中的内存可见性

android - 使用真实产品测试 Android 应用内购买

android - 如何向下滚动并单击带有 Espresso 测试的按钮?

unit-testing - 单元测试组成

java - ServerSocket 同时不会中断图像数据输入流