我写了一个标记为@Ignore
的性能测试类,因为它需要很长时间才能运行,我通常不需要运行它。我希望能够右键单击其中一个 @Test
并说“运行”,但是当我在 intellij 中执行此操作时,它不会运行测试,因为该类被标记为已忽略。
我不想注释掉 @Ignore
,因为很容易意外提交删除了 @Ignore
的文件。但我觉得如果我明确告诉 Intellij 运行测试它应该运行它而不考虑 @Ignore
。请记住,如果我运行一组类(例如:全部在一个包中),我仍然希望忽略此测试类。
是否可以在 Intellij 中获得此功能?
最佳答案
我找到了 this link它说你可以用 Assume.assumeTrue 做一些棘手的事情,如果条件为假,它将把测试标记为忽略,通常这是一个在条件中使用的系统属性,所以你可以将它作为参数传递给命令行。 IntelliJ 允许您自定义命令行参数,所以它应该可以工作,但我自己还没有尝试过。
链接中的示例是:
@Test
public void shouldTryEveryPossiblePhoneticAttributeSet() throws IOException {
Assume.assumeTrue(TestEnvironment.hasBigParseSets());
...
}
public class TestEnvironment {
private static final String HAS_BIG_PARSESETS = "hasBigParseSets";
public static boolean hasBigParseSets(){
return "true".equalsIgnoreCase(System.getProperty(HAS_BIG_PARSESETS));
}
}
和“mvn test -P bigParseSets”与“mvn test”。
编辑:我刚找到 this neat thread在 StackOverflow 上,它告诉您如何运行单个 junit 测试。我想我不需要引用它,因为它是在 StackOverflow 上的一篇帖子中。这解释了如何从命令行执行此操作,但您应该能够执行与类和方法名称具有硬编码值的命令非常相似的操作,然后只需右键单击 SingleJUnitTestRunner 类并要求 IntelliJ 运行
关于java - 我可以强制 Intellij-IDEA 运行忽略的测试吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21175148/