簡體   English   中英

有沒有隱含的替代方法來替代DependOnMethods TestNG功能? (以相關順序運行測試)

[英]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”功能。 問題是如何? 期望按優先順序排列:

  • 尋找讓TestNG隨身攜帶的解決方案
  • 保留TestNG,但使用其他工具,例如easyb? 使用groovy而不是Java ...我可以在easyb中使用TestNG組嗎? 是否可以不以bdd樣式而是“ junit”樣式來進行easyb,例如:

給定“用戶已登錄並設置專家模式”,{

 //... setup, a la @BeforeClass 

}

然后“用戶可以啟用bla bla bla” {

 //... 

}

然后“用戶可以檢查便便”

 //... 

}

然后“用戶保存更改” {

 //... 

}

然后“用戶還原更改”,{

 // Tear Down, a la @AfterClass 

}

“只是開始在同一個Java項目中用Groovy編寫其他測試類”有什么問題嗎?

  • 踢TestNG,但是用什么呢? TestNG群組功能-是必需的。

瘋狂的解決方案之一可能是-破壞一切並轉移到修昔底德。 但這不是我的選擇。

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“測試方法”。

但是,現在我有:

  • 隱式依賴方法。 盡管它們不是完全依賴的-如果某些方法將被“禁用”,下一個方法仍將執行。 但是我的實際目標是可以實現的:由於測試文件是一個普通的腳本,因此所有“測試方法”將按照其編寫順序執行。 一旦需要禁用任何“測試方法”,您就可以簡單地注釋其代碼-這將禁止執行測試,並在報告中將其顯示為“待處理”。
  • 測試方法具有可讀的“ sting”名稱。

這是測試的樣子:

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.

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