Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven-运行集成和单元测试_Java_Maven_Unit Testing - Fatal编程技术网

Java 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测试
,我的测试将运行

如果我运行
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 using
mvn中已经提到的方法验证
否则将不执行集成后测试阶段,这有时是集成测试关闭或清理等所需的。我无法更改测试名称。您能否澄清当前和预期的行为?我将您的代码复制到我的项目中,当我调用
mvn install
时,默认测试和集成测试都启动了,实际上我认为您是对的,我认为,如果测试失败,它不会运行集成测试。关于
mvn verify
?首先使用maven failsafe插件,正如前面所建议的那样。此外,您应该遵循命名约定,这使得生活更容易…单元测试:
*test.java*
集成测试
*IT.java
…并使用@chrylis using
mvn verify
,否则将不会执行集成后测试阶段,这有时是集成测试关闭或清理等所需的。我无法更改测试名称。您能否澄清当前和预期的行为?我将您的代码复制到我的项目中,当我调用
mvn install
时,默认测试和集成测试都启动了。我认为您是对的,实际上,我认为如果测试失败,它不会运行集成测试。