2014-09-12 41 views
0

我正在寫幾個不同的硒測試作爲頁面對象,並且希望能夠在單箇中心類中運行它們。我已經想出瞭如何從一個不同的類運行一個測試,但是當我嘗試運行多個測試時,只有一個測試會完成。從一個類(java)運行多個硒測試

我試着依次使用org.junit.runner.JUnitCore.main(「com.etc」)運行它們,但在 測試第一個類後,整個測試結束。在代碼:

org.junit.runner.JUnitCore.main("com.etc.test.HomePageCheck"); 
System.out.print("test"); 

打印命令永遠不會運行,即使在測試運行成功

我也試圖創建多個線程,但一旦所有測試完成,整個過程似乎要結束了,離開其餘的測試掛起。

重申,我有Class1與幾個jUnit測試和Class2與其他jUnit測試。我希望能夠運行一個Class3,它將同時運行Class1和Class2,並完成所有其他類的測試。 我不認爲我想使用Selenium Grid,我寧願只是在機器上本地運行測試,無論是按順序,還是最好是並行運行。

+1

Maybe Suite是你正在尋找的:https://github.com/junit-team/junit/wiki/Aggregating-tests-in-suites 你也應該發佈一些你的代碼,所以我們可以看看你做錯了什麼。 – user1071777 2014-09-12 19:37:58

+0

硒電網可能是一種選擇。 http://docs.seleniumhq.org/docs/07_selenium_grid.jsp – bcar 2014-09-13 18:28:23

回答

0

我想通了,這裏是代碼(第二行是關鍵,其他都只是爲了讓輸出)

Result aTest; 
aTest= org.junit.runner.JUnitCore.runClasses(new Class<?>[] 
{ 
    Events.class,SearchCheck.class}); 
    for(Failure i:aTest.getFailures()) 
    { 
     System.out.println(i.getException()+"\nat: "+i.getDescription()); 
     System.out.println("trace: "+i.getTrace()); 
     System.out.println(); 
    } 
} 

謝謝大家

編輯:實際測試套件也運作非常,和可能是更好的方法來做到這一點。