使用NUnit为WebApi编写单元测试遇多类报错求助
问题1:Assert不包含IsNotNull/AreEqual定义的解决方法
- 先确认测试项目安装了正确的NUnit依赖:
执行命令安装核心包和测试适配器:dotnet add package NUnit dotnet add package NUnit3TestAdapter - 检查测试类文件顶部是否引用了
using NUnit.Framework;,如果误引了其他测试框架(比如xUnit)的命名空间,就会找不到NUnit的断言方法 - 两种断言写法的正确示例:
- 经典断言:
Assert.IsNotNull(controller);、Assert.AreEqual("Hello", result.Value); - 现代断言(NUnit推荐风格):
Assert.That(controller, Is.Not.Null);、Assert.That(result.Value, Is.EqualTo("Hello"));
- 经典断言:
问题2:error CS0579 重复特性的解决方法
- 检查测试项目的.csproj文件,确保
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>放在正确的<PropertyGroup>节点下,示例:<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net6.0</TargetFramework> <GenerateAssemblyInfo>false</GenerateAssemblyInfo> <Nullable>enable</Nullable> </PropertyGroup> <!-- 其他包引用和配置 --> </Project> - 如果测试项目里有手动创建的
AssemblyInfo.cs文件,打开它删掉重复的[assembly: AssemblyCompany(...)]、[assembly: AssemblyProduct(...)]这类特性 - 清理项目缓存后重新构建:
注意:测试项目不要用dotnet clean dotnet restore dotnet testdotnet run执行,应该用dotnet test命令来运行单元测试
内容的提问来源于stack exchange,提问作者Abaiz
相关产品推荐
相关产品推荐

