我可以强制 Intellij-IDEA 运行忽略的测试吗?

2022-09-02 14:05:44

我写了一个性能测试类,标记为因为它需要很长时间才能运行,而且我通常不需要运行它。我希望能够右键单击其中一个并说“运行”,但是当我在intellij中执行此操作时,它不会运行测试,因为该类被标记为被忽略。@Ignore@Test

我不想注释掉,因为很容易意外地提交文件并删除。但我觉得,如果我明确告诉Intellij运行一个测试,它应该运行它,而不管.请记住,如果我运行一组类(例如:全部在一个包中),我仍然希望忽略这个测试类。@Ignore@Ignore@Ignore

是否可以在 Intellij 中获取此功能?


答案 1

我发现这个链接说你可以用Acsucation.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” vs “mvn test”。

编辑:我刚刚在StackOverflow上发现了这个整洁的线程,它告诉了如何运行单个junit测试。我想我不需要引用它,因为它是StackOverflow上的一篇文章。这解释了如何从命令行执行此操作,但是您应该能够执行与具有类和方法名称的硬编码值非常相似的操作,然后右键单击 SingleJUnitTestRunner 类并要求 IntelliJ 运行它。


答案 2

推荐