调整maven测试的断言

时间:2015-06-23 09:51:39

标签: java maven junit

我正在开发一个Java / Maven项目。我使用mvn test来运行我的测试套件。但是,在这种情况下,所有断言都被启用。不幸的是,这增加了从log(n)n^2的某些操作的时间,这是相当不方便的。更重要的是,操作是在依赖项packageA中定义的,而我在packageB上工作。使用普通Java我可以添加-ea:packageB...以仅启用我实际需要的断言。是否可以使用pom.xml的内容或mvn的命令行参数来实现此行为?我知道我可以禁用所有断言,但我宁愿将断言保存在我实际正在处理的包中......

2 个答案:

答案 0 :(得分:0)

您可以使用surefire-plugin实现这一目标。但首先,您需要为不同的包指定配置文件。

使用surefire-plugin,您可以使用通配符或正则表达式排除或包含包。

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.18.1</version>
    <configuration>
      <includes>
        <include>%regex[.*[Cat|Dog].*Test.*]</include>
      </includes>
    </configuration>
  </plugin>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.18.1</version>
    <configuration>
      <excludes>
        <exclude>**/TestCircle.java</exclude>
        <exclude>**/TestSquare.java</exclude>
      </excludes>
    </configuration>
  </plugin>

您可以找到更详细的信息on this site

答案 1 :(得分:0)

我使用这些属性:

<maven.test.skip>false</maven.test.skip>
<maven.test.failure.ignore>false</maven.test.failure.ignore>

然后你可以按原样保留Asserts,但是在Assert.fail()上将这些属性更改为fail,或者根本不进行测试。

或类似地使用CMD的额外参数,例如添加:

  

-Dmaven.test.skip =真