c# - 如何在 Visual Studio 2017/2019 中为特定目标框架运行单元测试?

标签 c# .net visual-studio visual-studio-2017 multitargeting

我真的很喜欢新的.csproj格式。它比可怕的(有限的)好多了project.json .

但是,我正在努力解决一件事。我已将我的(多个)测试项目合并为一个多目标项目。

<TargetFrameworks>netcoreapp1.0;net40;net35</TargetFrameworks>

但是,Visual Studio 的测试资源管理器中似乎没有任何工具来选择目标框架——它总是只运行第一个框架。我找到了一个解决方法 - 添加一个 <TargetFramework>具有特定框架的元素...

<TargetFramework>net35</TargetFramework>

但是,有没有什么方法可以在不手动编辑 MSBuild ( .csproj) 文件的情况下选择目标框架?我正在 GUI 中寻找一些选项来执行此操作 - 特别是这样我就不必记得编辑 .csproj文件以便在调试测试之前切换框架,或者记住必须在发布之前删除这一行。

最佳答案

我知道问题是关于 VS 的,但我发现在针对多个框架时很有用 dotnet tests命令 will run tests for all frameworks<TargetFrameworks>节点:

> 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还可以识别多个目标并自动为每个目标运行测试:

enter image description here

关于c# - 如何在 Visual Studio 2017/2019 中为特定目标框架运行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43554028/

相关文章:

c# - XML 序列化嵌套

C# 为什么这个循环这么慢?

C# - 抛出异常但调用方方法已经完成的任务会发生什么情况?

visual-studio - 在 Visual Studio 中高效处理远程项目

visual-studio - 明确设置目标平台时未构建新项目

c# - 在另一个线程更新 int[] 数组时从 int[] 数组中读取是否安全?

c# - 使用线程池安排方法延迟执行的最佳方法?

c# - 如何将 RSS 功能添加到我的网站?

.NET Core、Windows Azure 存储。在控制台应用程序上崩溃但在网络应用程序上不崩溃?

c++ - 测量 Visual Studio Enterprise 2017 (C++) 中的函数执行时间