dotnet test无法发现测试,已添加Microsoft.NET.Test.Sdk仍报错求助
排查dotnet test无法找到测试的问题
我之前也碰到过一模一样的情况,明明配置看起来都对,但就是跑不起来测试,给你几个实用的排查步骤:
先彻底清理还原项目:有时候本地缓存或未正确还原的包会搞出莫名其妙的问题,执行这几条命令试试:
dotnet clean dotnet restore dotnet build --configuration Debug完成后再运行
dotnet test,看看问题是否解决。确认测试框架依赖包完整:只加
Microsoft.NET.Test.Sdk是不够的,还需要对应测试框架的适配器包才能让测试发现器识别测试:- 如果用xUnit:需要额外安装
xunit和xunit.runner.visualstudio - 如果用NUnit:需要
NUnit和NUnit3TestAdapter - 如果用MSTest:需要
MSTest.TestFramework和MSTest.TestAdapter
对比下同事的项目csproj文件,看看你是不是漏加了这些关键包。
- 如果用xUnit:需要额外安装
指定目标框架运行测试:如果你的测试项目配置了多个目标框架(用
<TargetFrameworks>复数标签),dotnet test可能默认跑的不是netcoreapp1.1,试试明确指定框架:dotnet test --framework netcoreapp1.1检查测试类和方法的特性:测试发现器只会识别带有特定特性的类和方法,别漏了标记:
- xUnit:测试方法加
[Fact]或[Theory]即可,类无需特殊标记 - MSTest:测试类要加
[TestClass],测试方法加[TestMethod] - NUnit:测试类加
[TestFixture],测试方法加[Test]
确保你的测试代码都正确标记了这些特性。
- xUnit:测试方法加
验证输出dll的有效性:去错误提示的路径
C:\projects\...\bin\Debug\netcoreapp1.1下,确认Test.AnalyzeFirmwareRollout.dll是否存在,且生成过程没有报错。如果dll不存在或者大小异常,说明项目构建有问题,仔细查看dotnet build的输出日志找错误。核对dotnet SDK版本:
netcoreapp1.1需要对应的SDK版本支持,用dotnet --list-sdks查看本地已安装的SDK,确认有没有包含netcoreapp1.1对应的版本(一般是1.1.x系列)。如果没有,需要安装对应版本的SDK才能正常构建和运行测试。
内容的提问来源于stack exchange,提问作者Gasp0de
相关产品推荐
相关产品推荐

