2012-10-23 47 views
0

我已經寫了幾個測試,非常相同,但只有一種方式不同。一個測試有一個國際地址和其他擁有國內地址:DomesticAddress .scala & InternationalAddress .scalaTestNG @Test中可能出現競態條件嗎?

DomesticAddress .scala擴展了另一個類ShipMethods .scala具有@Test方法。在這裏,我正在驗證DomesticAddress .scala存在有效的運輸方式。 InternationalAddress .scala不延長ShipMethods .scala。

兩種測試類(DomesticAddress .scala和InternationalAddress .scala)具有不同的用戶;唯一的相似之處是該地址存儲在名爲「地址」的val中。

當我運行這兩個測試一些時間(只有一些次)的測試DomesticAddress .scala失敗,因爲我在那裏看到一個國際地址。

是否有可能有一個競爭條件在這種情況下發生?我的testng xml保留了測試的順序,所以這更讓人困惑,因爲我不會在測試中共享任何資源,所以可能會出現競爭狀況。

+0

讓我們從一個明顯的問題開始:您是否在平行運行測試? (如果您不確定,請在每個頁面中打印線索ID) –

回答

0

爲什麼你ShipMethods在其上具有@Test註解?這是一個測試課嗎?如果它不是測試類(與您想測試的類相對),那麼它不應該有@Test註釋。

你下的測試類不應該在他們裏面的測試方法。