VSTS中Visual Studio Test任务无法检测到.NET Core程序集测试用例
解决VSTS中Visual Studio Test任务无法检测.NET Core测试用例的问题
我之前也碰到过一模一样的问题,结合你提供的任务日志和运行设置来看,核心问题大概率是VSTS的Visual Studio Test任务和.NET Core测试的适配配置没做好,给你几个实用的排查和解决方向:
1. 改用.NET Core任务执行测试(最推荐)
Visual Studio Test任务本质上是针对传统.NET Framework测试优化的,对于.NET Core测试,直接用dotnet test命令会更可靠——这和你本地控制台运行的环境完全一致:
- 删掉原来的「Visual Studio Test」任务,添加一个「.NET Core」任务
- 命令选择
test - 指定测试项目路径,比如
**/*Tests.csproj(匹配所有测试项目) - 其他参数可以根据需要添加,比如
--configuration $(BuildConfiguration)
这样配置后,任务会自动还原依赖、编译项目并执行测试,基本能直接解决检测不到测试用例的问题。
2. 调整Visual Studio Test任务的配置(如果坚持用这个任务)
如果你不想换任务,那要检查以下几个关键配置点:
- 测试文件路径:确保你指定的是编译后的测试dll,并且排除
obj文件夹,比如用**/bin/$(BuildConfiguration)/**/*Tests.dll,避免选中未编译的文件 - 目标平台适配:看你提供的运行设置里
TargetPlatform是x86,但.NET Core测试默认是Any CPU/x64,你可以:- 把运行设置里的
TargetPlatform改成x64 - 或者在任务的「其他控制台选项」里添加
/Platform:x64参数
- 把运行设置里的
- 启用.NET Core支持:在任务的「高级」选项中,勾选「启用.NET Core测试」,并且确保使用的VSTest版本是15.x及以上(对应VS2017,和你本地环境一致)
3. 确保测试环境和依赖一致
- 检查VSTS代理上的.NET Core SDK版本是否和你本地一致:如果本地用的是.NET Core 2.1,而代理上只有3.1,会导致兼容性问题。可以添加一个「.NET Core SDK Installer」任务,指定你需要的SDK版本
- 确认测试项目已经安装了对应的测试适配器:比如用xunit的话,必须安装
xunit.runner.visualstudio包,这个包是让VSTest识别测试用例的关键,要确保它被正确还原和编译
4. 查看详细日志定位问题
把VSTS任务的日志级别改成「详细」,这样能看到VSTest扫描dll时的完整输出,比如有没有报错找不到测试适配器、或者dll加载失败的信息,这些细节能帮你快速定位具体问题。
内容的提问来源于stack exchange,提问作者Fanny
相关产品推荐
相关产品推荐

