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

标签 java junit intellij-idea junit4

我写了一个标记为@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/

相关文章:

Java进程生成器

java - 从 XML 文件中读取根元素

java - JDBC 瘦驱动程序 : Invalid Packet Lenght [sic]

java - HttpResponse header 的 Junit 测试

java - 在 Cucumber 步骤中 Autowiring 字段会产生 NullPointerException

java - 通过反射实例化静态抽象类

testing - 需要集成测试

scala - 如何设置 Intellij 14 Scala Worksheet 来运行 Spark

java - IntelliJ IDEA 中的 Annotation Processor 编译

android - 尝试更新到 Kotlin 1.4.0 时出现奇怪的错误。如何使其与 Gradle 和 IntelliJ IDEA 2020.2.1 一起使用?