在 Maven 中测试

Maven 工作中的另一个重要点是测试阶段。如果您运行testpackageverify或它们之后的任何其他阶段,它将被执行。

默认情况下,Maven 将运行src/test/java/文件夹中的所有测试。为了将要运行的测试与其他 java 文件区分开来,采用了命名约定。测试是名称以“Test”开头并以“Test”“TestCase”结尾的 Java 类。

测试名称的一般模式:

  • **/测试*.java
  • **/*测试.java
  • **/*测试用例.java

这些测试必须基于Junit或 TestNG 测试框架编写。这些都是非常酷的框架,我们稍后一定会谈到它们。

测试结果以.txt 和.xml 格式的报告形式保存在${basedir}/target/surefire-reports 目录中。

测试设置

运行测试通常有很多选项,因此Maven开发人员制作了一个特殊的插件,在参数中可以设置所有关于测试的详细信息。该插件称为Maven Surefire 插件,可.

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
    	<version>2.12.4</version>
    	<configuration>
        	<includes>
                <include>Sample.java</include>
        	</includes>
    	</configuration>
	</plugin>
</plugins>

在示例中,我们告诉插件它需要运行一个测试类 Sample.java。

如何快速消除损坏的测试

要运行项目进行测试,您需要运行 mvn test 命令。但更多时候需要将一些测试排除在测试之外。例如,它们可能已损坏、运行时间过长或出于任何其他原因。

首先,您可以简单地告诉 Maven 在执行构建阶段时跳过测试。例子:

mvn clean package -Dmaven.test.skip=true

其次,在插件配置中,您可以禁用测试的执行:


<configuration>
    <skipTests>true</skipTests>
</configuration>

第三,可以使用<exclude>标签排除测试。例子:


<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
    	<version>2.12.4</version>
    	<configuration>
        	<excludes>
           	<exclude>**/TestFirst.java</exclude>
	           <exclude>**/TestSecond.java</exclude>
    	</excludes>
    	</configuration>
    </plugin>
</plugins>