![](/img/trans.png)
[英]testng not running in priority order when dependsOnMethods is specified
[英]Is there an implicit alternative to dependsOnMethods TestNG functionality? (running tests in dependent order)
讓我們進行以下TestNG測試:
@Test
public void Test1() {
}
@Test (dependsOnMethods={"Test1"})
public void Test2() {
}
@Test (dependsOnMethods={"Test2"})
public void Test3() {
}
測試充當功能性的端到端Webui測試(使用Selenium Webdriver)。 每種測試方法都是端到端場景中的一個步驟。
我們如何重構測試以使其更具可讀性? 最好的解決方案可能是刪除批注中的所有“ dependsOnMethods”參數,並隱式提供此“ dependsOnMethods”功能。 問題是如何? 期望按優先順序排列:
給定“用戶已登錄並設置專家模式”,{
//... setup, a la @BeforeClass
}
然后“用戶可以啟用bla bla bla” {
//...
}
然后“用戶可以檢查便便”
//...
}
然后“用戶保存更改” {
//...
}
然后“用戶還原更改”,{
// Tear Down, a la @AfterClass
}
“只是開始在同一個Java項目中用Groovy編寫其他測試類”有什么問題嗎?
瘋狂的解決方案之一可能是-破壞一切並轉移到修昔底德。 但這不是我的選擇。
PS:我知道依賴測試是一種“不良做法”。 但是我相信,“測試依賴項本身”也是自動化的一個優點。
是的..還有一種替代使用取決於...不要這樣做!
這是可怕的測試邏輯。作為一名經驗豐富的專業軟件測試工程師,我建議您立即從所采用的這種自動化途徑中擺脫出來。
良好的測試體系結構要求每種方法都必須足夠自定義,並且在繼續操作之前,不應依賴其他測試來完成。 為什么? 因為說測試2取決於測試1。所以說測試1失敗了。現在,測試2將會失敗..最終,您將使測試1,2,3,4,5測試失敗,並且您甚至不知道該做什么。原因是。
先生,我對您的建議是創建自給自足,可維護且簡短的測試。
這是一本很好的讀物,將對您的工作有所幫助: http : //www.lw-tech.com/q1/ug_concepts.htm
保留TestNG,但使用其他工具,例如easyb? 使用groovy而不是Java ...我可以在easyb中使用TestNG組嗎? 是否有可能不以bdd樣式而是“ junit”樣式
這是我使用的選擇。
您將不會有與easyb相似的testng組(至少是開箱即用的),到目前為止,我還沒有找到任何方法來“注釋” easyb / groovy“測試方法”。
但是,現在我有:
這是測試的樣子:
beforeAllSetup()
before "each method setup", {
//implementation
}
after "each method tear down", {
//...
}
it "first test this", {
//...
}
it "this will be shown as pending in the report", /*{
//...
}*/
it "then test this", {
//...
}
afterAllTearDown()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.