2010-11-04 94 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,這個錯誤就消失了。

相關問題