.net 为什么Visual Studio 2015/2017/2019测试运行者没有发现我的xUnit v2测试
更新:增加2019年;discovery/runner集成机制与2017年和2015年相同,因此可能出错的关键因素是相同的.net 为什么Visual Studio 2015/2017/2019测试运行者没有发现我的xUnit v2测试,.net,visual-studio,unit-testing,visual-studio-2015,xunit2,.net,Visual Studio,Unit Testing,Visual Studio 2015,Xunit2,更新:增加2019年;discovery/runner集成机制与2017年和2015年相同,因此可能出错的关键因素是相同的 我读过,但我的问题不同——我相信我的测试没有任何微妙之处;(他们在其他环境中工作过,这似乎只是我的机器)-Visual Studio 2015[社区版]中的Visual Studio测试运行程序根本没有显示我的任何测试。我没有做任何令人激动的事;测试的目标是桌面上的xUnit.net v2 我已经查看了输出窗口,但在显示来自选项卡的测试中根本没有看到任何内容 消除查询中的
我读过,但我的问题不同——我相信我的测试没有任何微妙之处;(他们在其他环境中工作过,这似乎只是我的机器)-Visual Studio 2015[社区版]中的Visual Studio测试运行程序根本没有显示我的任何测试。我没有做任何令人激动的事;测试的目标是桌面上的xUnit.net v2 我已经查看了输出窗口,但在显示来自选项卡的测试中根本没有看到任何内容
packages\xunit.runner.console.2.2.0\tools\xunit.console
注意xunit.runner.console
软件包已被弃用-当您让东西在VS中工作时,您将能够让dotnet测试
也在CI上下文中运行它们-全面、最新,包括故障排除信息和PRs:- 重要提示:如果您以前安装过xUnit.net Visual Studio Runner VSIX(扩展名),则必须先卸载它。Visual Studio runner现在仅通过NuGet分发。要删除它,请转到工具扩展和更新。滚动到列表底部,如果安装了xUnit.net,请卸载它。这将迫使您重新启动Visual Studio 如果您在发现或运行测试时遇到问题,您可能是Visual Studio中运行程序缓存损坏的受害者。要清除此缓存,请关闭Visual Studio的所有实例,然后删除文件夹
%TEMP%\VisualStudioTestExplorerExtrances
。另外,请确保您的项目仅针对Visual Studio runner NuGet包的单个版本(xunit.runner.visualstudio
)进行链接
以下步骤对我有效:
DEL%TEMP%\VisualStudioTestExplorerExtrade
:-
PS>del$env:TEMP\VisualStudioTestExplorerExtensions
xunit.runner.visualstudio
- 帕克特:
您需要在您的.paket\paket add nuget xunit.runner.visualstudio -i
中包含以下内容:paket.dependencies
请注意路径:true中的nuget xunit.runner.visualstudio版本路径:true
version\u位很重要
- Nuget:转到包管理器控制台(Alt-T、N、O)并
xunit.runner
在输出目录中结束Microsoft.DotNet.InternalAbstractions
我在尝试使用
dotnet test
手动运行测试项目时发现了这一点,该测试失败,但报告缺少InternalAbstractions
。当自动发现失败时,我在测试输出窗口中没有看到此错误。我在发现窗口中看到的唯一信息是一个返回码,它当时对我来说没有任何意义,但事后看来,这可能是一个错误。这在我身上发生过好几次——当我清理项目并重新构建它时,它往往会很好。对我来说,最常见的罪魁祸首是Visual Studio试图使用与它正在测试的库不同的体系结构来运行测试。不幸的是,在很多地方,这似乎会出错
在VS 2017中,尝试在测试项目中创建运行设置文件,例如Default.runsettings
。如果主库为x64,则内容应为:
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<RunConfiguration>
<TargetPlatform>x64</TargetPlatform>
</RunConfiguration>
</RunSettings>
x64
然后从测试->测试设置->选择测试设置文件中选择此文件
然后,在测试->测试设置,默认处理器架构下,再次选择正确的架构
确保清理并构建整个解决方案。您可能需要关闭并重新打开“测试资源管理器”窗口。在Output->Test窗口中查找任何其他错误,以获取有关不正确架构类型的更多线索
供参考,可以找到其他测试设置条目。上述解决方案均不适用于我(dotnetcore 1.1,VS2017)。下面是修复它的方法:
Microsoft.TestPlatform.TestHost
Microsoft.NET.Test.Sdk
- xunit(2.3.0-beta1-build3642)
- xunit.runner.visualstudio (2.3.0-beta1-build1309)
.pdb
文件格式有关,它可能会破坏一些VS工具。(背景:请参阅。)
是否由于新的便携式.pdb
(调试符号)格式而找不到测试?
- 打开输出窗口
- 更改显示输出的下拉选择
<?xml version="1.0" encoding="utf-8"?> <RunSettings> <RunConfiguration> <TargetPlatform>x64</TargetPlatform> </RunConfiguration> </RunSettings>
[TestMethod] Before: public static void Test1() After: public void Test1()
Get-Project ComapanyName.ProjectName.*.Tests | Install-Package xunit.runner.visualstudio -Version 2.3.1
[Informational] NUnit Adapter 3.10.0.21: Test discovery starting [Informational] Assembly contains no NUnit 3.0 tests: C:\ihealautomatedTests\SeleniumTest\bin\x86\Debug\SeleniumTest.dll [Informational] NUnit Adapter 3.10.0.21: Test discovery complete