簡體   English   中英

如何在構建服務器上運行Specflow測試?

[英]How to run specflow tests on a build Server?

如何在構建服務器上使用Nunit 2.6.1運行Specflow測試?

另外,您如何維護和組織這些測試,以使多個自動化程序員編寫單獨的測試來在構建服務器上成功運行?

現在,我將嘗試回答您問題的第二部分:

“您如何維護和組織這些測試,以在多個自動化程序員對單獨的測試進行編碼的情況下在構建服務器上成功運行?”

這些測試很有可能會變成無法維護的混亂,這就是原因:

  • 步驟用於創建上下文(用於場景測試)
  • 可以從任何場景以任何順序調用步驟

由於這兩個簡單的事實,可以輕松地將該模型與過程/結構化編程進行比較。 場景上下文與某些全局變量沒有什么不同,而步驟是可以隨時隨地調用的某些方法。

我的團隊為避免在步驟文件中造成巨大混亂的目的是使它們盡可能地愚蠢。 步驟要做的所有事情就是解析和調用將完成真正有意義的工作並保留當前測試上下文的服務。 我們將這些服務稱為“ xxxxDriver”(其中xxxx是我們正在處理的域對象)。

一個愚蠢的例子:

[Given("a customer named (.*)")]
public void GivenACustomer(string customerName)
{
  _customerDriver.CreateCustomer(customerName);
}


[Given("an empty schedule for the customer (.*)")]
public void GivenEmptySchedule(string customerName)
{
  var customer = _customerDriver.GetCustomer(customerName);
  _scheduleDriver.CreateForCustomer(customer);
}

“ xxxxxDriver”將包含所有存儲庫,Webgateway,存根,模擬或與相關域對象相關的任何內容。 另一個重要的細節是,如果將這些驅動程序注入到步驟文件中,specflow將為每個方案創建一個實例,並在所有步驟文件中使用它。

這是我們發現在保持和擴展步驟的方式上保持某種一致性而又無需大團隊接觸同一代碼庫而互相干擾的最佳方法。 另一個巨大的優勢是,它可以幫助我們找到類似的步驟,以瀏覽驅動程序類中方法的用法。

specflow代碼庫本身有一個明確的示例。 (查看驅動程序文件夾) https://github.com/techtalk/SpecFlow/tree/master/Tests/TechTalk.SpecFlow.Specs

暫無
暫無

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

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