2013-02-17 47 views
6

我有一個場景大綱(又名場景模板),我希望使用VS 2012的測試瀏覽器列出我的測試。 默認的測試分組是通過「Project」名稱完成的 - 如果我堅持使用,我的測試來自場景大綱,它們位於「External」組中,而不屬於我的項目組。爲什麼VS 2012測試資源管理器中的場景概要顯示爲「外部」?

爲什麼會這樣,是否有解決方案/解決方法?

我的場景是我想使用測試瀏覽器運行給定項目的所有測試。爲他們設置相同的特質是愚蠢的,容易出現人爲錯誤。

我的解決方案有10個這樣的項目,其中很快就會添加更多的項目。因此,在「外部」下保留一個項目場景概述的測試可能會導致任何人錯過它們,或者抓住屬於另一個項目的場景大綱生成的測試。

UPDATE

GitHub的用戶沙市(https://github.com/shashiprabhakar)已登錄的問題向SpecFlow貢獻者:https://github.com/techtalk/SpecFlow/issues/275。非常感謝,夥計! 我已經開始跟蹤它,所以如果在那裏提出修復/解決方法,我會在這裏發佈它作爲答案。

+0

我也在SpecFlow Google小組中發佈了這個問題(https://groups.google.com/forum/?fromgroups=#!topic/specflow/uWK6NayuBzc)。如果組中出現答案/解決方案,我會在此發佈更新。 – 2013-02-17 15:23:38

回答

6
<specFlow> 
    <unitTestProvider name="..." /> <!-- this you have already --> 
    <generator allowDebugGeneratedFiles="true" /> <!-- this is the important setting --> 
</specFlow> 

這是Gaspar Nagy在App.config文件中推薦的配置。 「allowDebugGeneratedFiles」似乎是一張票。 有關該標籤的更多信息,它的子標籤可在official SpecFlow configurations page上找到。 將它設置爲TRUE只是第一步。

正如Gaspar所示,下一步是右鍵單擊解決方案資源管理器中的項目文件,然後選擇重新生成功能文件選項。

NB:當您設置allowDebugGeneratedFiles標誌,然後重新生成.feature文件實際發生的,SpecFlow只需將刪除.feature.cs文件#line hidden#line number

最後,我個人建議在重建之前或之後重新啓動Visual Studio 2012。當我嘗試上述步驟時,只有在重新啓動Visual Studio後,測試瀏覽器才能正確顯示測試。

PS:加斯帕指出,如果allowDebugGeneratedFiles標誌置位(=真),然後使用「運行SpecFlow方案」選項將不再工作。 但是,我可以通過右鍵單擊項目文件來使用該選項。 即使在我嘗試加斯帕的建議之前,在.feature上使用該選項對我來說也不起作用,因此一定是他所指的缺點。

PS#2:加斯帕爾也提到不會有這樣的缺點,將在SpecFlow 1.9.2中被刪除。

0

隨着加斯帕(https://github.com/gasparnagy)建議到GitHub的問題(https://github.com/techtalk/SpecFlow/issues/275)在Solution Explorer中的項目文件,右鍵單擊註釋,然後選擇「運行SpecFlow方案」是的,項目組的優秀的解決方法測試瀏覽器。

我可以驗證命題是否有效 - 使用SpecFlow 1.9.0對其進行測試。

但是,這仍然留下了測試資源管理器及其放置場景大綱生成的測試的奇怪「外部」測試組的問題。

我會更新此答案或發佈一個新的,如果更多的細節曝光。

相關問題