自从我安装VS 2017以来,我一直在与它斗争。现在,单元测试似乎只能从命令行“dotnet test”运行。
我的项目是。net Core 1.1.1。我已经安装了SDK和1.1.1的框架更新。
我在MSDN (https://msdn.microsoft.com/en-us/library/ms182532.aspx)上尝试了样本,也失败了。
所有用于测试和主项目的NuGet包都是最新的。测试项目和主项目的构建都没有错误。测试从命令行成功运行。
有人让单元测试在VS 2017中运行吗?如果是的话,是怎么做的?
谢谢,
约翰
更新-扩展
下面是一个简单的测试项目的例子,它不能在GitHub上运行。这是一个xUnit的例子,但我已经尝试了在MS测试中内置的NUnit和visual studio。无论我做了什么测试或做了什么更改,我都无法让VS测试运行器找到任何测试。
我的努力
删除VS测试缓存文件DEL %TEMP%\VisualStudioTestExplorerExtensions
重新启动和
关闭/打开测试资源管理器
为xUnit安装Microsoft.DotNet.InternalAbstractions(见SO post)
对于NUnit,确保适配器安装和NUnit包相同的版本(3)
Test -> Test Settings ->默认处理器架构设置为x86
这个问题
谁能提供一个VS2017中。net Core 1.1.0解决方案的工作示例?csproj项目文件),其中VS测试资源管理器成功找到单元测试或在给出的例子中显示问题。
我在VS 2017找到我的UnitTest时也遇到了麻烦。这不是约翰问的确切问题-但这是谷歌的第一个结果,我来寻找,所以我想分享我的问题。
我有一个遗留的解决方案,从VS2010回到VS2013, VS2015。现在在VS2017中,[TestMethod]属性的名称空间似乎已经改变了。
在它被使用之前
Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0
我在项目中创建了一个新的Test.dll,这是默认使用的
Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0
所以我的解决方案是从VS2017中创建一个新的UnitTest项目。也许更改旧测试项目的程序集引用也会起作用。新的参考VS2017确实发现了这些单元测试。
发现
上面的答案对我不起作用(重新启动,更新到版本1.1.18…我已经更新,删除临时文件,清除NuGet缓存等)。
我发现我对MSTest有不同的引用。TestAdapter和MSTest。框架在不同的测试项目(我的解决方案有两个)。一个指向1.1.18,就像…
packages.config
<package id="MSTest.TestAdapter" version="1.1.18" targetFramework="net461" />
<package id="MSTest.TestFramework" version="1.1.18" targetFramework="net461" />
... 但是另一个引用了1.1.11。上面的一些答案导致了这个发现,当重新启动VisualStudio后,在我的临时目录(% temp %\VisualStudioTestExplorerExtensions\)中出现了两个版本的库。
解决方案
只是更新我的包。配置到1.1.18版本是恢复我的单元测试功能在VS.。似乎有一些错误,不允许并排引用MSTest库。希望这对你有所帮助。
更多信息:
Visual Studio 2017 Ent: 15.5.6(我已经从15.0.1更新,希望修复这个问题,但我在两个版本都有)