使用Visual Studio 2017和Dotnet Core 2.0 SDK,我有一个包含多个项目的解决方案。其中一些是测试项目,另一些是源代码项目。
我可以在根解决方案方向上运行dotnet test,它将尝试发现该解决方案的所有项目中的测试。
但是,源项目没有测试,因此会为这些项目显示错误。除了进程的退出代码为1之外,所有测试都运行并通过。这意味着我们的CI构建失败。
有没有办法让它只在解决方案的测试项目上运行?它们位于测试目录中,既在文件系统上,也在解决方案目录中,但我找不到任何方法来过滤它们。
我已经编写了一个Powershell脚本来为测试文件夹中的每个项目运行它,但是我们的CI服务器使用的是Linux和Docker镜像microsoft/dotnet:2.0-sdk,所以Powershell脚本不会在那里运行。
我可以用Bash编写它,但它不能在Windows上运行。
我唯一的另一个想法是为同时拥有dotnet和powershell的构建制作一个自定义的docker镜像。
发布于 2017-09-07 20:33:58
这是一个没有修复的已知问题。此问题中列出了一些解决方法:https://github.com/Microsoft/vstest/issues/411
发布于 2019-01-14 10:06:11
好消息是,到目前为止,.NET Core2.2已经修复了这个问题。提交:https://github.com/Microsoft/vstest/pull/1745
发布于 2019-12-03 10:53:16
如果我们在谈论dotnet test,这是相关的问题:
https://github.com/microsoft/vstest/issues/1129
有一个a comment建议解决这个问题:
Directory.Build.targets文件,其中包含:after.[YourSolution].sln.targets文件,将名称中的[YourSolution]替换为您的实际解决方案名称,其中包含:在a later comment中,他提到他blogged the details of how this works。
https://stackoverflow.com/questions/46092418
复制相似问题