如何单独运行指定解决方案文件夹中的dotnet测试?
仅运行指定解决方案文件夹内测试的实现方法
当然可以实现按文件夹筛选测试,用IsTestProject结合自定义属性的方案简洁高效,具体操作如下:
一、通过统一配置文件标记测试项目
在解决方案根目录创建Directory.Build.props文件,根据项目所在文件夹为测试项目添加专属标识:
<Project> <PropertyGroup> <!-- 默认标记为单元测试项目 --> <IsUnitTest>true</IsUnitTest> <IsIntegrationTest>false</IsIntegrationTest> <IsTestProject>true</IsTestProject> </PropertyGroup> <!-- 对Integration Tests文件夹下的项目覆盖配置 --> <PropertyGroup Condition="$([System.String]::Copy('$(MSBuildProjectDirectory)').Contains('\Integration Tests\'))"> <IsUnitTest>false</IsUnitTest> <IsIntegrationTest>true</IsIntegrationTest> </PropertyGroup> </Project>
二、按属性筛选运行测试
配置完成后,使用dotnet test命令通过自定义属性筛选:
- 仅运行Tests文件夹内的单元测试:
dotnet test --filter IsUnitTest=true - 仅运行Integration Tests文件夹内的集成测试:
dotnet test --filter IsIntegrationTest=true
三、无配置快速替代方案
如果不想修改项目配置,也可以直接指定文件夹路径运行测试:
- 仅运行Tests文件夹下的所有测试项目:
dotnet test ./Tests/**/*.csproj - 仅运行Integration Tests文件夹下的所有测试项目:
dotnet test ./Integration\ Tests/**/*.csproj
内容的提问来源于stack exchange,提问作者Franz
相关产品推荐
相关产品推荐

