.NET Core单元测试无法识别Test Class与TestMethod问题求助
MSTest项目无法识别测试类/测试方法解决方案
第一步:验证测试项目csproj配置正确性
首先核对测试项目的.csproj文件配置,以下为标准正确配置示例:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <!-- 此处框架版本必须和你被测试的控制台项目保持完全一致,比如控制台用net8.0这里也要写net8.0 --> <TargetFramework>net6.0</TargetFramework> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> <IsPackable>false</IsPackable> </PropertyGroup> <ItemGroup> <!-- 所有MSTest相关依赖包版本必须完全一致,版本不匹配会直接导致特性识别失败 --> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" /> <PackageReference Include="MSTest.TestAdapter" Version="3.1.1" /> <PackageReference Include="MSTest.TestFramework" Version="3.1.1" /> <PackageReference Include="coverlet.collector" Version="6.0.0" /> </ItemGroup> <!-- 必须添加对控制台项目的引用,否则无法调用被测试的业务代码 --> <ItemGroup> <ProjectReference Include="..\你的控制台项目文件夹名\你的控制台项目名.csproj" /> </ItemGroup> </Project>
第二步:验证测试类/测试方法写法合规性
标准MSTest测试类写法如下,注意所有必填特性和修饰符:
// 必须引入MSTest的命名空间 using Microsoft.VisualStudio.TestTools.UnitTesting; // 如果你的控制台项目定义了命名空间,此处要引入对应命名空间 namespace 你的测试项目名 { // 测试类必须是public修饰,且必须标注[TestClass]特性 [TestClass] public class TrigonometricTests { // 测试方法必须是public修饰、无返回值,且必须标注[TestMethod]特性 [TestMethod] public void GetTriangleType_ThreeEqualSides_ReturnEquilateral() { // 测试逻辑建议:你可以把原Trigonometric类中判断三角形类型的逻辑抽离为独立的返回字符串的方法,不需要直接测试打印控制台的逻辑,避免捕获控制台输出的额外操作 } } }
第三步:清理重建项目解决缓存问题
按顺序执行以下操作:
- 删除控制台项目和测试项目下的
bin、obj文件夹 - 在解决方案根目录执行命令:
dotnet clean - 执行命令:
dotnet restore - 执行命令:
dotnet test验证是否能正常识别测试用例
内容的提问来源于stack exchange,提问作者Zahoor Ghani
相关产品推荐
相关产品推荐

