簡體   English   中英

Visual Studio 測試資源管理器無法在已編譯的測試項目中運行測試

[英]Visual Studio Test Explorer cannot run tests in compiled test project

我正在努力讓我的單元測試工作。 我已經與這個問題搏斗了幾個小時,但我無法解釋為什么事情不起作用。 我對我的代碼庫進行了相當大的重構,並且已經完成並修復了所有的單元測試。 測試項目構建,它輸出一個新的單元測試 dll。 但是,當我在測試資源管理器中運行測試時,我收到以下消息:

[2/27/2019 5:08:05 PM 警告] [MSTest][Discovery][C:\\pathtotest.dll] 未能從程序集 C:\\pathtotest.dll 中發現測試。 原因:無法加載文件或程序集“System.Runtime, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或其依賴項之一。 該系統找不到指定的文件。

[2/27/2019 5:08:05 PM 警告] C:\\pathtotest.dll 中沒有測試匹配給定的測試用例過濾器FullyQualifiedName=<namespace.namespace...testmethod> testmethod>

這是我所知道的:

  • 我最近更新了 Visual Studio(在過去兩周內,不記得我是什么時候做的)。

  • 測試項目中的所有包都已更新並運行最新版本的東西。

  • 我有另一個單元測試項目是 .Net Core 2.1,這是 .Net Framework 4.7.2。 另一個項目有效。

其他帖子給出的一些建議是確保您的測試架構是正確的,並刪除 %TEMP% 中的文件夾(不記得確切的名稱,除了是關於 VisualStudioExtensions 的內容)。 在 %TEMP% 中找不到他們建議刪除的文件夾,我嘗試在兩種架構上運行測試,結果相同。

所以下一步是進行健全性測試並確保構建的測試 dll 存在。 確實如此。

在這一點上,我准備開始一個新的測試項目並一個一個地復制粘貼所有測試,看看是否有人拋出了一個無聲錯誤。 我無法用自己的 Google-fu 技能找到任何有用的信息,我希望有人有一些有用的見解或技巧可以嘗試。

從上面的評論:

使用這個C:\\pathtotest.dll

還要檢查它是32bit or 64bit運行時。

大多數情況下使用32bit dll。

希望能幫助到你

我在現有解決方案中的全新測試項目中遇到了類似的問題 - 我所有其他測試項目都正確編譯和測試,但新項目反復出現錯誤:

沒有測試與給定的測試用例過濾器匹配...

答案來自這篇文章VSTest:MSTest V2 適配器不支持將 ForcedLegacyMode 設置為 true 的 testsettings 文件或 runsettings。 沒有可用的測試建議關閉測試設置文件,該文件以某種方式在新項目中被選中。

一旦我在 Visual Studio 中取消選擇測試 -> 測試設置 -> c:...\\Repos...testsettings 選項,測試就可以運行了。

就我而言,問題最終是兩種不同測試引擎的混合。 我在使用 NUnit 時不經意間用 [TestMethod] (MSTest) 修飾了我的測試方法。 一旦我將測試方法更改為僅 [Test] 並使用正確的測試運行程序,我終於開始營業了。

我有一個類似的問題。 就我而言,問題在於返回類型。 測試方法需要使用async但返回類型是void而不是Task 簡單和小想可能會吃很多時間。

暫無
暫無

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

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