2014-12-04 29 views
2

我一直在尋找一個在線答案,我已經嘗試了很多的建議,雖然所有的解決方案似乎是爲視覺工作室2010,我是運行2013年高級版,我看不到任何人有同樣的問題。文件未找到異常在visualstudio 2013中運行與codedui的specflow測試

我有溢價VS 2013,我通過擴展管理器安裝了SpecFlow v1.9,並添加了SpecFlow nuget軟件包。我創建了一個CodedUI測試項目並添加了一個功能文件,一些記錄的codedui步驟和一個stepdef文件。沒有什麼抱怨,它看起來應該工作。我添加了: <unitTestProvider name="MsTest"/> 到我的App.config,所以我可以從Visual Studio中的測試資源管理器運行它。我最終希望通過MTM來運行測試,但是我會在處理這個問題時處理這個問題!

我已經建成了,它是所有的快樂,所以我去測試資源管理器,我可以看到我的測試,所以我右鍵單擊,運行測試。它會失敗,出現以下錯誤,當我調試並落在試圖打開我的應用程序時,它會到達我的給定步驟。

System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.TestTools.UITest.WindowsStoreUtility, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.WRN: Assembly binding logging is turned OFF. 
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1. 
Note: There is some performance penalty associated with assembly bind failure logging. 
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog]. 

我無法找到的時候我特地將它添加到我的項目中引用上面的參考,有一個類似的,但它打破了我的一些其他的參考,當我添加它。我也看了一下我的註冊表文件,它所指的路徑不存在,我不能編輯它。從我讀過的codedui不能很好地與沒有dll文件的specflow一起工作。所有對此修復程序的引用似乎都針對vs 2010,並要求我將dll複製到我的specflow源文件夾。我從Visual Studio安裝了specflow,所以我沒有一個程序文件文件夾,所以我對這個解決方案有點不滿。

有沒有人有specflow與visual studio 2013和codedui測試項目一起工作?我錯過了一個設置步驟?或者這是真的與我的註冊表文件/參考。該錯誤令人困惑,因爲我不明白爲什麼它會試圖找到該引用,特別是當我嘗試手動找到該引用時,無法在任何位置找到該引用。我很想知道你是否有這個錯誤,並設法解決它,或者如果你可以解釋你的設置步驟,所以我可以檢查我沒有錯過任何東西。

謝謝!

+0

您的specflow將安裝在擴展文件夾中。我的建議是從無效工具安裝一切,然後搜索techtalk.specflow.dll,然後將2010修補程序的DLL放入安裝擴展的文件夾中。 – 2014-12-04 19:24:46

回答

4

我相信你可能會缺少對某些所需dll的引用。我剛剛完成了測試,在我的MS Visual Studio 2013最終版上使用Specflow,codedUI測試項目創建了一個測試,它工作得很好。

這裏是我遵循的步驟:

  1. 創建一個類庫項目。
  2. 從擴展和更新中添加對Specflow 1.9的引用。
  3. 添加了對Specflow CodedUI屬性生成器(Install-Package SpecFlow.CodedUI -Version 1.0.0.23)的引用。
  4. 添加了對項目所需的CodedUI和測試工具所需庫的引用。見下面我添加的參考。

    Microsoft.VisualStudio.QualityTools.CodedUITestFramework Microsoft.VisualStudio.QualityTools.UnitTestFramework Microsoft.VisualStudio.TestTools.UITest.Common Microsoft.VisualStudio.TestTools.UITest.Extension Microsoft.VisualStudio.TestTools.UITest.ExtensionUtilities Microsoft.VisualStudio.TestTools。UITesting

  5. 增加了一個單獨的CodedUI項目,以水溶液,並添加這個項目的類庫項目的引用。

  6. 使用一些測試創建一個新的Specflow特徵文件,並在步驟定義中爲其創建步驟,並參考您在步驟定義中的CodedUI項目中創建或記錄的功能。

  7. 運行測試,從資源管理器中Specflow測試。它應該工作正常。

注意:如果您將創建CodedUI項目而不是類庫項目,上述步驟應該工作得很好。

+1

謝謝,我創建瞭解決方案,添加了參考然後將其創建的所有dll複製到我的解決方案中,並且它現在正在從測試資源管理器運行測試。非常感謝你的幫助! – Helen 2014-12-08 08:37:46

+0

@Helen如果它對你有幫助,請提出答案。 – 2015-02-27 11:27:06

+0

Iain真的很有幫助,我的聲望得分還不夠高,所以當我嘗試點贊它時,它抱怨着我,但當我的分數提高時,我會回到它,非常感謝你的幫助。 – Helen 2015-03-02 08:12:58

0

我,即使我把所有的.dll文件的正確引用這個確切的錯誤信息。 我的解決方案是重新生成功能文件。 (右鍵單擊項目,並選擇「重新生成功能文件」)

離開這個答案的情況下,它可以幫助別人的未來。

1

馬克測試類與CodedUITest屬性。

+0

這正是我的問題。我有硒測試,但需要添加一些與桌面客戶端應用程序的交互。在使用Coded UI庫添加桌面客戶端控件的視圖後,我嘗試訪問控件時出現錯誤。那麼,我的測試類都被標記爲'[TestClass]'而不是'[CodedUITest]'糾正解決了錯誤。 – jibbs 2017-03-01 21:51:23