我剛剛(今天)嘗試SpecFlow首次。我在VS2010 Pro中創建一個新的類庫並添加一個SpecFlow特徵定義文件。SpecFlow錯誤地使用NUnit
事情是,整合似乎沒有正常工作,與各種不同的錯誤。我選擇了MsTest作爲測試運行者,因爲我不會爲調用NUnit而煩惱(我想長期使用NUnit,但目前我只想獲得一些BDD代碼)。然而,生成的代碼文件繼續引用NUnit--這顯然是錯誤的,因爲我剛剛告訴SpecFlow使用MsTest運行。我已經盡我所能地再次調用代碼生成,包括使用Tools> Options> SpecFlow中選擇的MsTest選項創建一個全新的類庫項目。
如果我將測試運行器字段設置爲「自動」並右鍵單擊某個功能文件,然後選擇「運行SpecFlow方案」,我收到一條錯誤消息「無法找到匹配的測試運行器」。
如果我不是改變測試運行領域MSTest的,我得到做同樣的事情不同的錯誤消息 - 「未設置爲一個對象的實例對象參考」。我對此並不感到驚訝,因爲它仍然試圖運行NUnit測試,即使我明確要求MsTest,但顯然它不應該nullref並將其呈現給用戶。
我在做什麼錯?文檔沒有幫助,就我所知,沒有常見問題解答。
編輯#1:我確定,我正在尋找的實際設置使用App.Config
使用領域<unitTestProvider name="MsTest" />
提供。我可以看到發生了什麼 - Visual Studio選項菜單中的字段似乎沒有修改您當前正在處理的項目。事情是,這使得它看起來像是領域根本沒有做任何事情。我現在已經說服SpecFlow生成MsTest類並使用MSTest runner運行。
所以現在問題變形爲一個稍微不同的問題:工具>選項> SpecFlow>測試亞軍工具字段做什麼(如果有的話)?
偉大的提示,謝謝!我立即設置了菜單按鈕,因爲它看起來非常有用,所以無論這種查詢方式提供了一個方便的副作用。雖然對於SpecFlow感到羞恥,但看起來我並不是唯一一個能夠做它應該做的事情的人。實際的產品工作,但VS整合不太正確。 –
是的,我希望它更集成,但我現在確定。現在它的使用確實勝過我的好處。很高興提示幫助! – MichaelF
您是否運行過specflow安裝程序,或者您是否使用NuGet將它添加到項目中?安裝程序將安裝所有集成組件,如Visual Studio集成,其中nuget安裝只添加必要的引用。 –