Nig*_*888 31 .net c# multitargeting visual-studio visual-studio-2017
我真的很喜欢这种新.csproj格式.它比可怕的(有限的)好得多project.json.
但是,有一件事我想解决.我已将我的(多个)测试项目合并到一个多目标项目中.
<TargetFrameworks>netcoreapp1.0;net40;net35</TargetFrameworks>
Run Code Online (Sandbox Code Playgroud)
但是,在Visual Studio中的测试资源管理器中似乎没有任何工具来选择目标框架 - 它总是只运行第一个.我找到了一个解决方法 - 添加一个<TargetFramework>具有特定框架的元素......
<TargetFramework>net35</TargetFramework>
Run Code Online (Sandbox Code Playgroud)
但是,有没有办法选择目标框架而不需要手工编辑MSBuild(.csproj)文件?我正在寻找GUI中的一些选项来执行此操作 - 特别是因此我不必记住编辑.csproj文件以便在调试测试之前切换框架或记住在发布之前必须删除此行.
我知道,问题是关于VS,但我发现,针对多种框架时有用dotnet tests命令将运行所有测试框架中<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)
...
Run Code Online (Sandbox Code Playgroud)
NCrunch还可以识别多个目标并自动为每个目标运行测试:
事实证明,微软终于在 Visual Studio 2019 中修复了这个问题(不确定具体时间)。
如果您指定多个目标框架:
<TargetFrameworks>netcoreapp2.1;net451</TargetFrameworks>
Run Code Online (Sandbox Code Playgroud)
GUI 现在显示:
并允许您同时在所有目标平台上运行测试。
| 归档时间: |
|
| 查看次数: |
1490 次 |
| 最近记录: |