簡體   English   中英

在 testng 中禁用並行執行(xml 配置)

[英]Disable parallel execution in testng (xml config)

我正在使用以下非常簡單的 XML 文件來執行我的測試用例:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name="Regression">

<parameter name="browser" value="chrome" />
<parameter name="env" value="stage" />

 <test name="smokeTestSTAGE">

    <classes>   
    <class name="regression.gaming.playQuickGame2v2"/>
    <class name="regression.gaming.playQuickGame1v1"/>
    </classes>

 </test>

</suite>

如您所見,我什至沒有在套件名稱旁邊使用“並行”一詞,但我的測試是並行執行的。 這真的很令人沮喪,因為它過去沒有發生,它從今天開始,我真的不知道為什么。

我可以為您提供有關我的設置(Java,Selenium 3.0.1)的更多詳細信息,但我認為情況並非如此。

我想也許我在某個地方隱藏了一個@BeforeSuite,但這不是問題。 我只在我的測試用例中使用@BeforeClass + @AfterClass,因此根據官方文檔:

@BeforeClass:被注解的方法會在當前類的第一個測試方法被調用之前運行。

@AfterClass:被注解的方法會在當前類的所有測試方法都運行完之后運行。

但他們不是! 仍然 playQuickGame2v2 和 playQuickGame1v1 同時執行!! 我已經從 Eclipse Marketplace 下載了 testng,如果這起到了我不知道的作用。 我不這么認為。

*感覺就像我的 @BeforeClass 注釋表現得好像它是 @BeforeTest *


我試過的:

找到這篇文章: 在 TestNG 中停止並行執行

嘗試根據 Cedric 的回答設置 parallel="false" 或 parallel="true" 和 thread-count="1"但無濟於事。

還發現了這個 stackoverflow post stackoverflow testng但最重要的答案意味着我們需要為每個測試用例創建一個套件來解決這個問題 - 這絕對不是這種情況,因為它將完全定義套件的目的(即集合測試用例-->類)

我所有的課程都是這樣寫的:

    @BeforeClass
    @Parameters({"browser", "env"})
    public void initialSetup(String browser, String env){
    //do some stuff here
    }

    @Test (priority=1)
    public void initializeVariables(){
    //test some stuff here
    }

    @Test(priority=2)
    public void loginAsPlayer1(){
    //test some more stuff here
    }

    @AfterClass 
    public void shutDown(){    
    checkIfLoggedIn();  
    quitBrowser();  
    }

任何幫助將不勝感激,伙計們!

提前致謝!

我知道這是一個老問題,但是當我遇到同樣的問題時我遇到了它。

從 6.9.13 開始,測試的優先級似乎是從每個標簽內的所有類中考慮的。 因此,如果您有多個以@Test(priority=1) 開頭的類,它將運行這些測試方法中的每一個,然后再進行任何優先級=2 的測試。

因此,測試不一定並行運行,它們按優先級順序運行,如果重構為在類運行時相互跟隨,則應該按預期運行。

在這里發布這個作為 xml 在評論中看起來很難看。 將類包裝在測試標簽中部分解決了我的問題,因為測試類現在按順序執行。 當然,這不是正確的方法,所以任何關於我所缺少的建議都非常受歡迎。 干杯! :)

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name="Regression">

<parameter name="browser" value="chrome" />
<parameter name="env" value="stage" />

 <test name="smokeTestSTAGE1">

    <classes>     
    <class name="playQuickGame1v1"/>
    </classes>

 </test>


 <test name="smokeTestSTAGE2">

    <classes> 
    <class name="playQuickGame2v2"/>
    </classes>

 </test>


</suite>

好的解決了!! :) :) :) 很抱歉我們現在可以結束這個愚蠢的問題。 就像恢復到以前的版本一樣簡單http://beust.com/eclipse-old/eclipse_6.9.12.jar

為我做的伙計們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM