未找到 运行 的测试 - 而 debugging/running 单元测试用例 -- Visual studio 2017 15.5.1
No tests found to run - while debugging/running Unit test cases -- Visual studio 2017 15.5.1
Error : No tests found to run - while debugging/running C# Unit test
cases -- Visual studio 2017 15.5.1 not discovering test cases.
框架
Microsoft.NET 框架 4.6.1
添加如下测试适配器
MSTest.TestAdapter.1.2.0
MSTest.TestFramework.1.2.0
测试资源管理器未显示测试用例。
升级 visual studio 后开始出现这种情况。
一些单元测试项目的测试用例不会在测试资源管理器中被发现。
当尝试调试或 运行 时,它说“没有找到 运行 的测试。”
我尝试删除项目并重新创建它..但没有成功。
输出
[2018 年 4 月 3 日 2:59:25 PM 信息] 未找到 运行.
的测试
我已经将 VS 更新到 15.6.4
删除 VS 测试缓存文件 DEL %TEMP%\VisualStudioTestExplorerExtensions
重新启动 Visual studio
已发现测试用例但未调试
我做了下面的事情,它解决了我的问题
- 我已经将 VS 更新到最新版本 15.6.4
- 正在删除 VS 测试缓存文件 DEL
%TEMP%\VisualStudioTestExplorerExtensions
- 重新启动Visual Studio
然后测试用例被发现但没有调试。
错误如下:
Dependency finder domain): Loaded 'C:\PROGRAM FILES (X86)\MICROSOFT
VISUAL
STUDIO17\ENTERPRISE\COMMON7\IDE\EXTENSIONS\TESTPLATFORM\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll'.
Cannot find or open the PDB file.
其他 DLL 的类似错误如下:
C:\PROGRAM FILES (X86)\MICROSOFT VISUAL
STUDIO17\ENTERPRISE\COMMON7\IDE\EXTENSIONS\TESTPLATFORM\Microsoft.VisualStudio.TestPlatform.Common.dll'.
Cannot find or open the PDB file.
所以PDB是Visual Studio使用的调试信息文件。这些是系统 DLL,您没有调试符号。
转到工具->选项->调试->符号和 select 复选框 "Microsoft Symbol Servers",Visual Studio 将自动下载 PDB。
然后我降级了:
MSTest.TestAdapter.1.2.0 至 1.1.18
MSTest.TestFramework.1.2.0 至 1.1.18
然后重新启动 VS studio 并重建。
仍然出现以下错误:
System.IO.FileNotFoundException: Could not load file or assembly
'System.Net.Http, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The
system cannot find the file specified.
然后我将版本设置为newVersion="4.0.0.0"
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.0.0.0" />
</dependentAssembly>
并开始调试。
问题
如果我没理解错的话,你观察到的是:
当你运行测试时,可以在控制台中看到以下内容:
[4/3/2018 2:26:13 PM Informational] ------ Run test started ------
[4/3/2018 2:26:14 PM Warning] No test is available in d:\...\UnitTestProject1.dll. Make sure that test discoverer & executors are
registered and platform & framework version settings are appropriate and try
again.
测试浏览器显示:
可能会发生什么,我发生过几次,测试发现是为另一种架构设置的,而不是你当前设置的架构。
例子
您当前的配置是 x64
但是,默认测试设置可能有另一个(例如 x86):
解决方案
如果您_align 测试设置与当前架构 (x86 → x64),测试应该 运行。
如果解决方案配置一致,现在应该不需要手动清理了
伙计们
我遇到了同样的问题,并通过添加 [TestClass] 和 [TestMethod] 来修复它,并让我的 Selenium 自动化测试库在 VS 2015 上运行。
干杯,
[TestClass]
public class GigHubAutomatedTest
{
[TestMethod]
public void StartApplication()
{
using(IWebDriver googleDriver = new ChromeDriver())
{
// 1. Maximize the browser
googleDriver.Manage().Window.Maximize();
googleDriver.Navigate().GoToUrl("https://www.google.com/");
}
}
}
我安装了多个版本的 Nuget 包,我将它们合并到最新版本并解决了问题
MSTest.TestAdapter
MSTest.TestFramework
已接受的答案单独对我不起作用,但与此同时起作用:
- 退出 MSVS
- 删除 .vs 文件夹(您可能会丢失一些仅与该解决方案相关的设置)
- 重启 MSVS
- 从接受的答案中,确保测试 -> 设置 -> Def Arch-> 与代码匹配
- 加载播放列表(如果适用)
- 建造
- 测试!
尝试清除位于 %TEMP%
目录中的临时文件
删除文件夹:%temp%
目录中的 VisualStudioTestExplorerExtensions
。
注:此路径一般在C:\Users\(yourusername)\AppData\Local\Temp
我遇到了同样的问题,确保将 TestClass
设置为 public
!
[TestClass]
public class CSharp_JavaScript_ServerResponse_Test
{
}
在我的例子中,“构建 -> 清理解决方案”成功了。
此外,请确保您同时安装了 MSTest.TestFramework 和 MSTest.TestAdapter Nuget 包
截至今天,我使用 NUnit @ VSCode 和 .NET Core 5.0
缺少 Microsoft.NET.Test.SDK NuGet 包..
一旦我将它添加到 ALL 测试程序集(即:解决方案 .sln 中的所有 .csproj 文件),一切正常。
HTH 致许多走到这一步的人。
这些 PackageReferences 在我的 TestProject.csproj
<ItemGroup>
<PackageReference Include="NUnit" Version="3.13.1"/>
<PackageReference Include="NUnit.Console" Version="3.12.0"/>
<PackageReference Include="NUnit3TestAdapter" Version="4.0.0-beta.2"/>
<PackageReference Include="NUnitTestAdapter" Version="2.3.0"/>
<PackageReference Include="NUnit.Extension.NUnitProjectLoader" Version="3.6.0"/>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.10.0-release-20210422-02"/>
</ItemGroup>
确保您至少选择了其中一项(“总测试”、“通过测试”或“未通过测试”):
我的问题是我使用的是异步等待,return 类型无效。它需要是任务。
改变了这个:
public async void MyTest()
为此:
public async Task MyTest()
如果您不在单元测试方法中(例如,您有一个方法 Foo()
然后你在其中放置一个断点并想要 运行 测试,以便它们导致断点被击中......如果你在 Foo()
的主体内选择 Debug Test(s)
则不会发生任何事情。 ..您必须转到测试资源管理器并选择 Debug
或使用快捷方式 Ctrl+T,Ctrl+R
)。
Error : No tests found to run - while debugging/running C# Unit test cases -- Visual studio 2017 15.5.1 not discovering test cases.
框架 Microsoft.NET 框架 4.6.1
添加如下测试适配器 MSTest.TestAdapter.1.2.0 MSTest.TestFramework.1.2.0
测试资源管理器未显示测试用例。
升级 visual studio 后开始出现这种情况。 一些单元测试项目的测试用例不会在测试资源管理器中被发现。 当尝试调试或 运行 时,它说“没有找到 运行 的测试。”
我尝试删除项目并重新创建它..但没有成功。
输出 [2018 年 4 月 3 日 2:59:25 PM 信息] 未找到 运行.
的测试我已经将 VS 更新到 15.6.4 删除 VS 测试缓存文件 DEL %TEMP%\VisualStudioTestExplorerExtensions 重新启动 Visual studio
已发现测试用例但未调试
我做了下面的事情,它解决了我的问题
- 我已经将 VS 更新到最新版本 15.6.4
- 正在删除 VS 测试缓存文件 DEL
%TEMP%\VisualStudioTestExplorerExtensions
- 重新启动Visual Studio
然后测试用例被发现但没有调试。
错误如下:
Dependency finder domain): Loaded 'C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO17\ENTERPRISE\COMMON7\IDE\EXTENSIONS\TESTPLATFORM\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll'. Cannot find or open the PDB file.
其他 DLL 的类似错误如下:
C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO17\ENTERPRISE\COMMON7\IDE\EXTENSIONS\TESTPLATFORM\Microsoft.VisualStudio.TestPlatform.Common.dll'. Cannot find or open the PDB file.
所以PDB是Visual Studio使用的调试信息文件。这些是系统 DLL,您没有调试符号。
转到工具->选项->调试->符号和 select 复选框 "Microsoft Symbol Servers",Visual Studio 将自动下载 PDB。
然后我降级了:
MSTest.TestAdapter.1.2.0 至 1.1.18
MSTest.TestFramework.1.2.0 至 1.1.18
然后重新启动 VS studio 并重建。
仍然出现以下错误:
System.IO.FileNotFoundException: Could not load file or assembly 'System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
然后我将版本设置为newVersion="4.0.0.0"
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.0.0.0" />
</dependentAssembly>
并开始调试。
问题
如果我没理解错的话,你观察到的是:
当你运行测试时,可以在控制台中看到以下内容:
[4/3/2018 2:26:13 PM Informational] ------ Run test started ------
[4/3/2018 2:26:14 PM Warning] No test is available in d:\...\UnitTestProject1.dll. Make sure that test discoverer & executors are
registered and platform & framework version settings are appropriate and try
again.
测试浏览器显示:
可能会发生什么,我发生过几次,测试发现是为另一种架构设置的,而不是你当前设置的架构。
例子
您当前的配置是 x64
但是,默认测试设置可能有另一个(例如 x86):
解决方案
如果您_align 测试设置与当前架构 (x86 → x64),测试应该 运行。
如果解决方案配置一致,现在应该不需要手动清理了
伙计们
我遇到了同样的问题,并通过添加 [TestClass] 和 [TestMethod] 来修复它,并让我的 Selenium 自动化测试库在 VS 2015 上运行。
干杯,
[TestClass]
public class GigHubAutomatedTest
{
[TestMethod]
public void StartApplication()
{
using(IWebDriver googleDriver = new ChromeDriver())
{
// 1. Maximize the browser
googleDriver.Manage().Window.Maximize();
googleDriver.Navigate().GoToUrl("https://www.google.com/");
}
}
}
我安装了多个版本的 Nuget 包,我将它们合并到最新版本并解决了问题
MSTest.TestAdapter MSTest.TestFramework
已接受的答案单独对我不起作用,但与此同时起作用:
- 退出 MSVS
- 删除 .vs 文件夹(您可能会丢失一些仅与该解决方案相关的设置)
- 重启 MSVS
- 从接受的答案中,确保测试 -> 设置 -> Def Arch-> 与代码匹配
- 加载播放列表(如果适用)
- 建造
- 测试!
尝试清除位于 %TEMP%
目录中的临时文件
删除文件夹:%temp%
目录中的 VisualStudioTestExplorerExtensions
。
注:此路径一般在C:\Users\(yourusername)\AppData\Local\Temp
我遇到了同样的问题,确保将 TestClass
设置为 public
!
[TestClass]
public class CSharp_JavaScript_ServerResponse_Test
{
}
在我的例子中,“构建 -> 清理解决方案”成功了。
此外,请确保您同时安装了 MSTest.TestFramework 和 MSTest.TestAdapter Nuget 包
截至今天,我使用 NUnit @ VSCode 和 .NET Core 5.0 缺少 Microsoft.NET.Test.SDK NuGet 包.. 一旦我将它添加到 ALL 测试程序集(即:解决方案 .sln 中的所有 .csproj 文件),一切正常。 HTH 致许多走到这一步的人。
这些 PackageReferences 在我的 TestProject.csproj
<ItemGroup>
<PackageReference Include="NUnit" Version="3.13.1"/>
<PackageReference Include="NUnit.Console" Version="3.12.0"/>
<PackageReference Include="NUnit3TestAdapter" Version="4.0.0-beta.2"/>
<PackageReference Include="NUnitTestAdapter" Version="2.3.0"/>
<PackageReference Include="NUnit.Extension.NUnitProjectLoader" Version="3.6.0"/>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.10.0-release-20210422-02"/>
</ItemGroup>
确保您至少选择了其中一项(“总测试”、“通过测试”或“未通过测试”):
我的问题是我使用的是异步等待,return 类型无效。它需要是任务。 改变了这个:
public async void MyTest()
为此:
public async Task MyTest()
如果您不在单元测试方法中(例如,您有一个方法 Foo()
然后你在其中放置一个断点并想要 运行 测试,以便它们导致断点被击中......如果你在 Foo()
的主体内选择 Debug Test(s)
则不会发生任何事情。 ..您必须转到测试资源管理器并选择 Debug
或使用快捷方式 Ctrl+T,Ctrl+R
)。