如何在Visual Studio 2017中运行特定目标框架的单元测试?
我真的很喜欢新的.csproj
格式。它比可怕的(有限的)project.json
好得多。如何在Visual Studio 2017中运行特定目标框架的单元测试?
但是,有一件事我正试图解决。我已将我的(多个)测试项目合并为一个多目标项目。
<TargetFrameworks>netcoreapp1.0;net40;net35</TargetFrameworks>
但是,似乎没有要在测试资源管理器在Visual Studio中选择目标框架任何工具 - 它始终只是运行第一个。我发现了一个解决办法 - 添加<TargetFramework>
元素与特定的框架...
<TargetFramework>net35</TargetFramework>
但是,有什么办法来选择目标框架,而不是诉诸手动编辑的MSBuild(.csproj
)文件?我正在寻找GUI中的某些选项来实现此目的 - 特别是,我不必记住编辑.csproj
文件以便在调试测试之前切换框架,或记住在发布之前必须删除此行。
使用'或'运算符在runsettings文件中使用TargetFrameWorkVersion。
我知道,问题是关于VS,但我觉得很有用,在<TargetFrameworks>
节点针对多种框架dotnet tests
命令will run tests for all frameworks时:
> dotnet test
...
Test run for [projectPath]\bin\Debug\netcoreapp1.1\XUnitTestProject.dll(.NETCoreApp,Version=v1.1)
...
Test run for [projectPath]\bin\Debug\net461\XUnitTestProject.dll(.NETFramework,Version=v4.6.1)
...
NCrunch还可以识别多个目标,并自动每个目标运行测试:
对于某些可能有用,对于调试无用 - 特别是如果您有库并且唯一的调试方法是在Visual Studio中运行测试。 – NightOwl888
@ NightOwl888,看起来不像VS当前有UI。尝试NCrunch - 单元测试的优秀工具,它支持通过右键单击测试覆盖的代码行来进行调试。 –
谢谢,但此产品没有[开源许可](https://www.ncrunch.net/buy/faq#discount)。我们需要支持任何愿意加入我们团队的人,并且NCrunch的许可证不符合此要求。 – NightOwl888
你能举个例子吗?另外,我还希望在GUI中有一些东西,因为我已经有了一个很好的解决方法。 – NightOwl888
看起来像.runsettings文件仅支持Framework35,Framework40,Framework45值,并且不支持.NET Core。 –