假设我想从我的 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/