BDD工具SpecFlow版本2支持并行執行
行為驅動開發 (BDD)工具 SpecFlow 的最新版本支持以并行方式執行測試,并添加了對 xUnit 2.0和 NUnit 3.0的支持。最新發布的版本2同時升級至新的 Gherkin 3 解析器,后者目前幾乎已應用在所有Cucumber工具中了。
InfoQ與SpecFlow的作者與主要維護者 Gáspár Nagy 進行了一次訪談,按照他的描述,以用戶的角度來看,并行測試執行是最重要的一個新特性。Nagy發現,在大多數情況下,即使在單一的機器中,執行時間也降低了大約40%。如果某個應用程序依賴于靜態狀態,例如緩存,推薦的做法是通過多個隔離的AppDomain進行并行的測試執行。這種方式能夠確保每個執行測試的線程中的內存是相互隔離的,從而能夠以并行的方式進行測試的執行,而無需考慮額外的因素。如果測試并不依賴于任何靜態狀態,即不會在靜態字段中保存任何特定于測試的信息,那么就可以在一個AppDomain中并行執行。這種方式的初始化資源占用較少,所需的內存也較少。
至于Gherkins 3的升級,Nagy認為這正是跨平臺開源項目的一個絕佳案例。通過這種方式可以打造跨平臺的BDD技能、工具以及社區。
Nagy還表示,從開源項目的角度來看,這次發布最重要的一項改進在于:在經歷了很長一段時間之后,社區終于成功地發布了一個新版本,并且趁此機會對項目進行了一些清理工作,讓項目重回正規,以迎接今后更頻繁的發布。
其他的改進點包括:
- 所有組件都已升級至.NET 4.5,值得注意的是,從這次升級之后,SpecFlow版本2將不再支持任何較早的.NET運行時版本。
- 通過一個Order參數,就可以控制鉤子(例如BeforeScenario)的執行順序。
- 簡化了使用MSTest時的配置。
- 改進了基于正則表達式的建議功能,以更好地發現所遺漏的步驟。
- 與Visual Studio的集成被轉移至一個 獨立的項目 中。
SpecFlow是在.NET平臺上實現BDD的一個開源工具,它也是 Cucumber 家族的一員,后者支持其他各種平臺。通過這種工具,可以以 Gherkin 語言的形式描述一個用戶故事中的場景,描述采用了基于關鍵字的方式,其中最重要的關鍵字包括Given、When和Then。
來自: http://www.infoq.com/cn/news/2016/02/bdd-specflow-release