2016-07-07 61 views
0

TestNG在尋找測試類時如何工作?TestNG如何查找測試類?

我使用JavaFX創建了一個獨立的項目,使用JavaFX創建GUI,GUI運行時可以選擇XML文件,然後將testNG XML的路徑保存在變量中。

當我運行下面的代碼:

String xmlFileName = selectedFile.getAbsolutePath(); 

TestNG testng = new TestNG(); 
List<String> testFilesList = new ArrayList<String>(); 

testFilesList.add(xmlFileName); //test suite resides in the working directory's root folder 
testng.setTestSuites(testFilesList); //you can addd multiple suites either here by adding multiple files or include all suites needed in the testng.xml file 
testng.setUseDefaultListeners(false); 
testng.addListener(htmlRep); 
testng.run(); 

我得到一個錯誤,指出它無法找到XML在我的測試類。

[TestNG中] [錯誤]

找不到類路徑中的類:com.emc.qe.u360.tests.LogoutTests

然後我決定把我的TestNG的在Java類項目,並複製代碼,它仍然給出相同的錯誤消息。

TestNG在上面的代碼運行時尋找測試類在哪裏?

上述代碼與eclipse自己手動運行XML有什麼區別?該代碼似乎正在工作,因爲從我可以看到如果運行XML的代碼被破壞或不工作,它將無法給我那個錯誤,因爲它無法確定什麼是指定XML。

任何幫助將不勝感激,謝謝。

編輯:只是爲背景信息,目前我使用詹金斯運行測試,我想要做的與GUI是創建一個替代解決方案運行測試之外的項目/框架,可以普遍使用,用戶可以選擇他們的XML然後測試將被執行。

+0

我正在嘗試做類似的事情。當我將多個TestNG測試類傳遞給我的Spring-Web-App測試運行器時,即使其中一個測試類具有錯誤的經典類名稱,那麼整個套件也會與TestNGException一起崩潰,我寧願在每個類的基礎上捕獲問題,然後繼續。我想我可能會在組裝套件之前檢查類名,並在早期發現異常。 – djangofan

+0

嘿@djangofan。我不認爲我需要解決您的問題,因爲我處於開發的最初階段。如果你想開始一個私人聊天和討論或項目,也許我已經做的事情可能會幫助你或使你受益? – colin

+0

它確定。我不需要幫助。我提到它是因爲它聽起來像你可能遇到與你的FX測試跑步者類似的問題。 – djangofan

回答

0

如果您使用Maven Surefire或Gradle TestNG轉輪,它是可配置的,但默認情況下,我認爲TestNG在您的類名稱中查找src/test/java。此外,我認爲如果您從代碼運行TestNG,作爲獨立運行,您可能可以調整它尋找類的路徑基礎。