问题
在 Maven 托管项目上使用 TestNG,我似乎无法通过 TestNG eclipse 插件运行测试。尝试运行测试时,会弹出以下错误消息(在对话窗口内):
无法联系 RemoteTestNG 客户端。确保您的类路径中没有旧版本的 testng.jar。
原因:
尝试联系 RemoteTestNG 时超时。
如何解决这个问题?
我尝试过的事情
(在询问了办公室 QA 部门的所有同事,并通过常见的搜索引擎和 TestNG 论坛查找信息后)
- 确保我的课程路径上没有旧版本(自然)。
- 消除 maven 导入的 jar 和 TestNG eclipse 插件使用的 jar 之间可能发生的冲突(两者都是 6.7 版本,并且该项目已
pom.xml
确认仅使用其自己的依赖 jar)。 - 在上述更改后执行 Maven 更新和构建。
- 在不同的 JRE(特别是 1.7.0)上运行。
相关信息
环境:
- 操作系统: Win XP pro SP3
- JRE: 1.6.0 更新 31
- 测试NG: 6.7
- Maven: 3.0.3
- IDE: Eclipse Juno Java EE SR1
pom.xml
内容:
<?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>SGTest</artifactId>
<name>SGTest</name>
<description>Service Grid Test project for XAP</description>
<parent>
<groupId>com.my_product.quality.sgtest</groupId>
<artifactId>SGTest-parent</artifactId>
<version>3.0.0</version>
<relativePath>http://mvn-srv:8081/artifactory/libs-snapshot-local/com/my_product/quality/sgtest/SGTest-parent/3.0.0/SGTest-parent-3.0.0.pom</relativePath>
</parent>
<properties>
<xap.home>${env.XAP_LATEST}</xap.home>
</properties>
<dependencies>
<dependency>
<groupId>com.my_product</groupId>
<artifactId>my_opensource_product</artifactId>
<version>${gsVersion}</version>
<scope>system</scope>
<systemPath>${xap.home}/lib/required/my_opensource_product.jar</systemPath>
</dependency>
<dependency>
<groupId>com.my_product</groupId>
<artifactId>gs-runtime</artifactId>
<version>${gsVersion}</version>
<scope>system</scope>
<systemPath>${xap.home}/lib/required/gs-runtime.jar</systemPath>
</dependency>
<dependency>
<groupId>com.my_product.quality</groupId>
<artifactId>DashboardReporter</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>apps</artifactId>
<version>${project.version}</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>com.my_product.quality</groupId>
<artifactId>webuitf</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.my_product.quality</groupId>
<artifactId>wanem</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.my_opensource_product.xenserver</groupId>
<artifactId>xenserver-machine-provisioning</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.swift.common</groupId>
<artifactId>confluence-soap</artifactId>
<version>0.5</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.7</version>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant-jsch</artifactId>
<version>1.8.3</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
</dependency>
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.2</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.5</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>1.8.6</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-vfs2</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.hyperic</groupId>
<artifactId>sigar</artifactId>
<version>1.6.5</version>
<scope>system</scope>
<systemPath>${xap.home}/lib/platform/sigar/sigar.jar</systemPath>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>3.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>1.8.0.10</version>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<version>1.3</version>
</dependency>
</dependencies>
<build>
<testSourceDirectory>src/main/java</testSourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<classpathDependencyExcludes>
<classpathDependencyExcludes>com.my_product.quality.sgtest.apps.security:processor</classpathDependencyExcludes>
<classpathDependencyExcludes>com.my_product.quality.sgtest.apps.archives:customSecurityProcessor</classpathDependencyExcludes>
<classpathDependencyScopeExclude>runtime</classpathDependencyScopeExclude>
</classpathDependencyExcludes>
<argLine>-Xmx2048m -XX:MaxPermSize=512m</argLine>
<includes>
<include>${includes}</include>
</includes>
<excludes>
<exclude>${excludes}</exclude>
</excludes>
<disableXmlReport>true</disableXmlReport>
<reportsDirectory>${sgtest.summary.dir}</reportsDirectory>
<reportFormat>xml</reportFormat>
<properties>
<property>
<name>configfailurepolicy</name>
<value>continue</value>
</property>
<property>
<name>suitename</name>
<value>${sgtest.suiteName}${sgtest.suiteId}</value>
</property>
<property>
<name>testname</name>
<value>${sgtest.suiteName}${sgtest.suiteId}</value>
</property>
<property>
<name>outputDir</name>
<value>${sgtest.summary.dir}</value>
</property>
<property>
<name>listener</name>
<value>framework.testng.SGTestNGListener,framework.testng.SGTestNgSuiteSplitter,framework.testng.report.TestNgReporterImpl</value>
</property>
</properties>
<systemProperties>
<sgtest.suiteId>${sgtest.suiteId}</sgtest.suiteId>
<sgtest.numOfSuites>${sgtest.numOfSuites}</sgtest.numOfSuites>
<selenium.browser>${selenium.browser}</selenium.browser>
<org.apache.commons.logging.Log>org.apache.commons.logging.impl.Jdk14Logger</org.apache.commons.logging.Log>
<com.gs.logging.level.config>true</com.gs.logging.level.config>
<java.util.logging.config.file>${basedir}/logging/sgtest_logging.properties</java.util.logging.config.file>
<sgtest.buildFolder>${sgtest.buildFolder}</sgtest.buildFolder>
<sgtest.url>http://192.168.9.121:8087/sgtest3.0-xap/</sgtest.url>
<sgtest.disconnect.machines>${sgtest.disconnect.machines}</sgtest.disconnect.machines>
<com.gs.work>${com.gs.work}</com.gs.work>
<com.gs.deploy>${com.gs.deploy}"</com.gs.deploy>
<cppOS>${cppOS}</cppOS>
</systemProperties>
<testFailureIgnore>true</testFailureIgnore>
<detail>true</detail>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.3</version>
<configuration>
<descriptors>
<descriptor>src/main/assembly/assembly.xml</descriptor>
</descriptors>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
<executions>
<execution>
<id>make-assembly</id> <!-- this is used for inheritance merges -->
<phase>package</phase> <!-- bind to the packaging phase -->
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>