我创建了一套TestNG测试,我试图使用Selenium Grid.从Ant任务运行我尝试在Ant中设置类路径,包括TestNG jar和一些其他必需的jar(测试是Selenium测试)。这与Selenium Grid演示略有修改,以反映我环境中的位置。
<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。
答案 0 :(得分:1)
不是将类路径设置为指向单个类文件,而是将其设置为指向父目录。
而不是
<fileset dir="${test.location}">
<include name="**/*.java" />
</fileset>
试
<pathelement path="${test.location}" />
(尽管您可能需要将其更改为指向bin目录,而不是src目录)。
答案 1 :(得分:0)
我在多个实例上遇到了同样的错误。在探索eclipse的解决方案时,我偶然发现了Markers窗口(主菜单 - &gt; Windows - &gt; Show View - &gt; Markers),它说我的项目(proj1,我使用Testng启动)缺少必需的库,是这样的。
我使用外部java项目(ext_proj)将它作为外部jar文件附加到此项目的构建路径proj1中(通过将其指向位于ext_proj目录中的ext_proj.jar)。我不小心清理了(ext_proj),它消灭了ext_proj.jar。我无法在控制台中看到上述错误的确切原因,但仅在我上面指出的Markers窗口中。
一旦我在proj1中使这个ext_proj.jar可用,这个错误就消失了。