有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我可以强制IntellijIDEA运行忽略的测试吗?

我编写了一个标记为@Ignore的性能测试类,因为它需要很长时间才能运行,通常我不需要运行它。我希望能够右键单击其中一个@Test并说“run”,但当我在intellij中这样做时,它不会运行测试,因为类被标记为忽略

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

有可能在Intellij中获得此功能吗


共 (1) 个答案

  1. # 1 楼答案

    我找到了this link,它说你可以用假设做一些棘手的事情。assumeTrue,如果条件为false,它会将测试标记为忽略,通常这是在条件中使用的系统属性,因此可以在命令行上将其作为参数传递。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测试-p bigParseSets”与“mvn测试”

    编辑:我刚刚在StackOverflow上找到了this neat thread,它告诉我们如何运行一个junit测试。我想我不需要引用,因为这是在StackOverflow上发布的。这说明了如何从命令行执行此操作,但您应该能够执行与类和方法名具有硬编码值的命令行非常类似的操作,然后右键单击SingleJunitestRunner类并让IntelliJ运行它