Java Maven-运行集成和单元测试
我在Maven中定义了两组测试-集成测试和测试 如果我运行Java Maven-运行集成和单元测试,java,maven,unit-testing,Java,Maven,Unit Testing,我在Maven中定义了两组测试-集成测试和测试 如果我运行maven测试,我的测试将运行 如果我运行maven集成测试-两个都运行 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.4.3</version>
maven测试
,我的测试将运行
如果我运行maven集成测试
-两个都运行
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<id>default-test</id>
<configuration>
<forkMode>always</forkMode>
<excludes>
<exclude>**/TC_Integration*</exclude>
</excludes>
<includes>
<include>**/TC_*</include>
</includes>
</configuration>
</execution>
<execution>
<id>integration-test</id>
<phase>integration-test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<excludes>
<exclude>**/TC_Unit*</exclude>
</excludes>
<includes>
<include>**/TC_*</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
org.apache.maven.plugins
maven surefire插件
2.4.3
默认测试
总是
**/TC_集成*
**/TC_*
集成测试
集成测试
测试
**/TC_装置*
**/TC_*
什么是使两者始终运行的最佳方法?我主要希望
maven install
同时运行这两种测试,但事实并非如此。与其尝试配置surefire同时运行单元测试和集成测试,不如将surefire配置为仅运行单元测试,并使用故障保护插件来运行集成测试
不要试图将surefire配置为同时运行单元测试和集成测试,而是将surefire配置为仅运行单元测试,并使用故障保护插件运行集成测试
关于
mvn verify
?首先使用maven failsafe插件,正如已经建议的那样。此外,您应该遵循命名约定,这使得生活更容易…单元测试:*Test.java*
集成测试*IT.java
…并使用@chrylis usingmvn中已经提到的方法验证
否则将不执行集成后测试阶段,这有时是集成测试关闭或清理等所需的。我无法更改测试名称。您能否澄清当前和预期的行为?我将您的代码复制到我的项目中,当我调用mvn install
时,默认测试和集成测试都启动了,实际上我认为您是对的,我认为,如果测试失败,它不会运行集成测试。关于mvn verify
?首先使用maven failsafe插件,正如前面所建议的那样。此外,您应该遵循命名约定,这使得生活更容易…单元测试:*test.java*
集成测试*IT.java
…并使用@chrylis usingmvn verify
,否则将不会执行集成后测试阶段,这有时是集成测试关闭或清理等所需的。我无法更改测试名称。您能否澄清当前和预期的行为?我将您的代码复制到我的项目中,当我调用mvn install
时,默认测试和集成测试都启动了。我认为您是对的,实际上,我认为如果测试失败,它不会运行集成测试。