2010-11-04 92 views
1

我创建了一套TestNG测试,我尝试使用Selenium Grid.从Ant任务运行我尝试在Ant中设置类路径包括TestNG jar和一些其他需要的jar(测试是Selenium测试)。这从Selenium Grid演示中略微修改,以反映我的环境中的位置。从Ant运行TestNG套件时出错:“找不到类路径中的类”

<path id="runtime.classpath"> 
    <pathelement path="${java.class.path}/" /> 
    <fileset dir="C:\Tools\selenium-grid-1.0.8\vendor"> 
     <include name="selenium-java-client-driver-${selenium.version}.jar"/> 
     <include name="testng-5.7-jdk15.jar"/> 
     <include name="commons-logging-1.0.4.jar"/> 
    </fileset> 
    <fileset dir="${test.location}"> 
     <include name="**/*.java" /> 
    </fileset> 
    <pathelement location="${grid.location}/lib/selenium-grid-tools-standalone-${grid.version}.jar" /> 
</path> 

TestNG的开始,但立即失败与错误:

 [java] =============================================== 
    [java] Selenium Tests 
    [java] Total tests run: 0, Failures: 0, Skips: 0 
    [java] =============================================== 
    [java] 
    [java] [ERROR]: 
    [java] Cannot find class in classpath: TestName 

test.location当前指向为测试src文件夹。将test.location更改为包含bin目录并将name属性更改为**/*.class没有什么区别;错误是一样的。

我可以从Eclipse插件成功运行该套件,所以我知道测试套件文件是可以的。我正在努力让它在Ant中运行,以确保Selenium Grid实际上正在将测试正确地分发到Selenium Remote Controls。

回答

1

而不是将类路径设置为指向各个类文件,请将其设置为指向父目录。

而不是

<fileset dir="${test.location}"> 
    <include name="**/*.java" /> 
</fileset> 

尝试

<pathelement path="${test.location}" /> 

(虽然你可能需要在bin目录中,而不是在src目录此更改为点)。

+0

良好的通话,这个伎俩。我不得不做更多的按摩,因为Ant想要其他我认为无关的罐子,但这是问题的关键。非常感谢! – Feanor 2010-11-04 23:42:16

0

我在多个实例中遇到了同样的错误。在探索eclipse的解决方案时,我偶然发现了标记窗口(主菜单 - > Windows - >显示视图 - >标记),这表明我的项目(我使用Testng启动的proj1)缺少必需的库,情况就是如此。

我正在使用外部java项目(ext_proj),通过将其作为外部jar文件附加到此项目的构建路径proj1(将它指向驻留在ext_proj目录中的ext_proj.jar)。我不小心清除了ext_proj.jar中的(ext_proj)。我无法在控制台中看到上述错误的确切原因,但仅在上面指出的Markers窗口中。

一旦我在proj1中提供了这个ext_proj.jar,这个错误就消失了。

相关问题