Java Maven 2未运行Junit 4测试

Java Maven 2未运行Junit 4测试,java,maven-2,junit4,junit3,Java,Maven 2,Junit4,Junit3,我在让surefire运行Junit4测试时遇到问题。在中报告了相同的问题,但解决方案是删除有问题的依赖项,该依赖项的可传递性导致包含junit3。在我的情况下,依赖性是必要的。我试图找出如何排除junit3的可传递依赖项,以便它不包含在surefire:test类路径中 <?xml version="1.0"?> <project> <modelVersion>4.0.0</modelVersion> <groupId>com.c

我在让surefire运行Junit4测试时遇到问题。在中报告了相同的问题,但解决方案是删除有问题的依赖项,该依赖项的可传递性导致包含junit3。在我的情况下,依赖性是必要的。我试图找出如何排除junit3的可传递依赖项,以便它不包含在surefire:test类路径中

<?xml version="1.0"?>
<project>
 <modelVersion>4.0.0</modelVersion>
 <groupId>com.comcast.service</groupId>
 <artifactId>LocationServiceIntTest</artifactId>
 <version>10.01</version>
 <packaging>jar</packaging>
 <name>Location Service Integration Test</name>
 <repositories>
  <repository>
   <id>central</id>
   <url>http://pacdcntdp01.cable.comcast.com:8081/artifactory/repo</url>
   <snapshots>
    <enabled>false</enabled>
   </snapshots>
  </repository>
  <repository>
   <id>3rdp-releases</id>
   <url>http://pacdcntdp01.cable.comcast.com:8081/artifactory/3rdp-releases
   </url>
   <snapshots>
    <enabled>false</enabled>
   </snapshots>
  </repository>
  <repository>
   <id>snapshots</id>
   <url>http://pacdcntdp01.cable.comcast.com:8081/artifactory/repo</url>
   <releases>
    <enabled>true</enabled>
   </releases>
  </repository>
 </repositories>
 <pluginRepositories>
  <pluginRepository>
   <id>central</id>
   <url>http://pacdcntdp01.cable.comcast.com:8081/artifactory/repo</url>
   <snapshots>
    <enabled>false</enabled>
   </snapshots>
  </pluginRepository>
  <pluginRepository>
   <id>snapshots</id>
   <url>http://pacdcntdp01.cable.comcast.com:8081/artifactory/repo</url>
   <releases>
    <enabled>false</enabled>
   </releases>
  </pluginRepository>
 </pluginRepositories>
 <build>
  <plugins>
   <plugin>
    <groupId>org.apache.axis2</groupId>
    <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
    <version>1.5.1</version>
    <executions>
     <execution>
      <goals>
       <goal>wsdl2code</goal>
      </goals>
     </execution>
    </executions>
    <configuration>
     <packageName>com.comcast.service</packageName>
     <wsdlFile>${basedir}/../ServiceClient/src/main/resources/LocationService.wsdl
     </wsdlFile>
     <databindingName>adb</databindingName>
     <unpackClasses>true</unpackClasses>
    </configuration>
   </plugin>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
     <source>1.5</source>
     <target>1.5</target>
    </configuration>
   </plugin>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.4.3</version>
    <configuration>
     <includes>
      <include>**/*Test.java</include>
     </includes>
     <junitArtifactName>junit:junit:jar:4.4</junitArtifactName>
    </configuration>
   </plugin>
  </plugins>
 </build>
 <dependencyManagement>
  <dependencies>
   <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.4</version>
   </dependency>
  </dependencies>
 </dependencyManagement>
 <dependencies>
  <dependency>
   <groupId>org.unitils</groupId>
   <artifactId>unitils-core</artifactId>
   <version>3.1</version>
   <type>pom</type>
   <exclusions>
    <exclusion>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
  <dependency>
   <groupId>org.unitils</groupId>
   <artifactId>unitils-testng</artifactId>
   <version>3.1</version>
   <type>pom</type>
   <exclusions>
    <exclusion>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
  <dependency>
   <groupId>org.apache.axis2</groupId>
   <artifactId>axis2</artifactId>
   <version>1.5.1</version>
   <exclusions>
    <exclusion>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
  <dependency>
   <groupId>org.apache.ws.commons.axiom</groupId>
   <artifactId>axiom-impl</artifactId>
   <version>1.2.8</version>
   <exclusions>
    <exclusion>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
  <dependency>
   <groupId>org.apache.ws.commons.axiom</groupId>
   <artifactId>axiom-dom</artifactId>
   <version>1.2.8</version>
   <exclusions>
    <exclusion>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
  <dependency>
   <groupId>axis</groupId>
   <artifactId>axis-wsdl4j</artifactId>
   <version>1.5.1</version>
   <exclusions>
    <exclusion>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
  <dependency>
   <groupId>org.apache.rampart</groupId>
   <artifactId>rampart-core</artifactId>
   <version>1.4</version>
   <exclusions>
    <exclusion>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
  <dependency>
   <groupId>org.apache.rampart</groupId>
   <artifactId>rampart</artifactId>
   <version>1.4</version>
   <exclusions>
    <exclusion>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
  <dependency>
   <groupId>org.apache.rampart</groupId>
   <artifactId>rahas</artifactId>
   <version>1.4</version>
   <exclusions>
    <exclusion>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
  <dependency>
   <groupId>org.apache.geronimo.specs</groupId>
   <artifactId>geronimo-jaxws_2.1_spec</artifactId>
   <version>1.0</version>
   <exclusions>
    <exclusion>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
  <dependency>
   <groupId>commons-lang</groupId>
   <artifactId>commons-lang</artifactId>
   <version>2.4</version>
   <exclusions>
    <exclusion>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
 </dependencies>
 <reporting>
  <plugins>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.4</version>
   </plugin>
  </plugins>
 </reporting>
</project>
下面是我的pom.xml和“mvn-X测试”的输出。xml试图使用“exclusion”元素,但这似乎没有帮助。请注意底部附近,maven将junit3添加到测试类路径中

<?xml version="1.0"?>
<project>
 <modelVersion>4.0.0</modelVersion>
 <groupId>com.comcast.service</groupId>
 <artifactId>LocationServiceIntTest</artifactId>
 <version>10.01</version>
 <packaging>jar</packaging>
 <name>Location Service Integration Test</name>
 <repositories>
  <repository>
   <id>central</id>
   <url>http://pacdcntdp01.cable.comcast.com:8081/artifactory/repo</url>
   <snapshots>
    <enabled>false</enabled>
   </snapshots>
  </repository>
  <repository>
   <id>3rdp-releases</id>
   <url>http://pacdcntdp01.cable.comcast.com:8081/artifactory/3rdp-releases
   </url>
   <snapshots>
    <enabled>false</enabled>
   </snapshots>
  </repository>
  <repository>
   <id>snapshots</id>
   <url>http://pacdcntdp01.cable.comcast.com:8081/artifactory/repo</url>
   <releases>
    <enabled>true</enabled>
   </releases>
  </repository>
 </repositories>
 <pluginRepositories>
  <pluginRepository>
   <id>central</id>
   <url>http://pacdcntdp01.cable.comcast.com:8081/artifactory/repo</url>
   <snapshots>
    <enabled>false</enabled>
   </snapshots>
  </pluginRepository>
  <pluginRepository>
   <id>snapshots</id>
   <url>http://pacdcntdp01.cable.comcast.com:8081/artifactory/repo</url>
   <releases>
    <enabled>false</enabled>
   </releases>
  </pluginRepository>
 </pluginRepositories>
 <build>
  <plugins>
   <plugin>
    <groupId>org.apache.axis2</groupId>
    <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
    <version>1.5.1</version>
    <executions>
     <execution>
      <goals>
       <goal>wsdl2code</goal>
      </goals>
     </execution>
    </executions>
    <configuration>
     <packageName>com.comcast.service</packageName>
     <wsdlFile>${basedir}/../ServiceClient/src/main/resources/LocationService.wsdl
     </wsdlFile>
     <databindingName>adb</databindingName>
     <unpackClasses>true</unpackClasses>
    </configuration>
   </plugin>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
     <source>1.5</source>
     <target>1.5</target>
    </configuration>
   </plugin>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.4.3</version>
    <configuration>
     <includes>
      <include>**/*Test.java</include>
     </includes>
     <junitArtifactName>junit:junit:jar:4.4</junitArtifactName>
    </configuration>
   </plugin>
  </plugins>
 </build>
 <dependencyManagement>
  <dependencies>
   <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.4</version>
   </dependency>
  </dependencies>
 </dependencyManagement>
 <dependencies>
  <dependency>
   <groupId>org.unitils</groupId>
   <artifactId>unitils-core</artifactId>
   <version>3.1</version>
   <type>pom</type>
   <exclusions>
    <exclusion>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
  <dependency>
   <groupId>org.unitils</groupId>
   <artifactId>unitils-testng</artifactId>
   <version>3.1</version>
   <type>pom</type>
   <exclusions>
    <exclusion>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
  <dependency>
   <groupId>org.apache.axis2</groupId>
   <artifactId>axis2</artifactId>
   <version>1.5.1</version>
   <exclusions>
    <exclusion>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
  <dependency>
   <groupId>org.apache.ws.commons.axiom</groupId>
   <artifactId>axiom-impl</artifactId>
   <version>1.2.8</version>
   <exclusions>
    <exclusion>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
  <dependency>
   <groupId>org.apache.ws.commons.axiom</groupId>
   <artifactId>axiom-dom</artifactId>
   <version>1.2.8</version>
   <exclusions>
    <exclusion>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
  <dependency>
   <groupId>axis</groupId>
   <artifactId>axis-wsdl4j</artifactId>
   <version>1.5.1</version>
   <exclusions>
    <exclusion>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
  <dependency>
   <groupId>org.apache.rampart</groupId>
   <artifactId>rampart-core</artifactId>
   <version>1.4</version>
   <exclusions>
    <exclusion>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
  <dependency>
   <groupId>org.apache.rampart</groupId>
   <artifactId>rampart</artifactId>
   <version>1.4</version>
   <exclusions>
    <exclusion>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
  <dependency>
   <groupId>org.apache.rampart</groupId>
   <artifactId>rahas</artifactId>
   <version>1.4</version>
   <exclusions>
    <exclusion>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
  <dependency>
   <groupId>org.apache.geronimo.specs</groupId>
   <artifactId>geronimo-jaxws_2.1_spec</artifactId>
   <version>1.0</version>
   <exclusions>
    <exclusion>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
  <dependency>
   <groupId>commons-lang</groupId>
   <artifactId>commons-lang</artifactId>
   <version>2.4</version>
   <exclusions>
    <exclusion>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
 </dependencies>
 <reporting>
  <plugins>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.4</version>
   </plugin>
  </plugins>
 </reporting>
</project>

我不知道如何才能让JUnit4与所有依赖项一起运行,但我注意到,导致问题的原因是您对TestNG Unitils工件的依赖

请注意,为了让测试正常工作,我必须删除存储库、除编译器和surefire之外的插件以及apache rampart依赖项

为了让示例JUnit 4测试用例运行,我做了三个更改:

  • 从surefire配置中删除junitArtifactName元素
  • 将junit工件从DependencyManager部分移动到dependency部分
  • 从依赖项中删除unitils测试工件。你把它列为一种pom,这就没什么意义了

请注意,unitils core也是pom类型,这没有多大意义。

deterb,非常感谢您的洞察力。实施你的建议确实纠正了这个问题。我错误地认为需要联合测试。移除它是让事情运转起来的关键。前两个要点只是我试图尝试不同的方法来让它工作。我还从unitils核心中删除了pom类型,正如你所指出的,这是没有意义的。再次感谢!