Maven-将集成测试与单元测试分开
问题内容:
是否可以将集成测试与同一模块中的单元测试隔离开?
我创建了简单的pom:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>prj</artifactId>
<packaging>war</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludes>
<exclude>**/integration/**/*.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>integration</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>**/integration/**/*.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
但是,使用 mvn -Pintegration test 不会调用任何东西。如果我注释掉主版本中的 排除 部分-
那么它将开始执行测试,但也没有配置文件。
问题答案:
代替:
<exclude>*/integration/**/*.java</exclude>
尝试:
<include>*/unit/**.java</include>
然后在集成配置文件中
<includes>
<exclude>**/unit/**/*.java</exclude>
<include>**/integration/**/*.java</include>
</includes>
您可能需要正确地正确执行包含/排除,但这是总的想法。