我创建了一个 ASP.NET Core 6 MVC Web 应用程序。构建成功,项目中没有任何错误。
在同一个解决方案中,我创建了一个 xUnit 测试项目,您可以看到下面的文件夹结构:
单元测试文件代码为:
using Microsoft.AspNetCore.Mvc;
using NetCoreMvcWebApp.Controllers;
namespace TestMvcApp
{
public class UnitTest1
{
[Fact]
public void Test1()
{
HomeController h = new HomeController(null);
var res = (ViewResult)h.Index();
var outdata = res.ViewData["SomeData"];
Assert.IsType<DateTime>(outdata);
}
}
}
添加了 ASP.NET Core MVC Web 应用程序作为测试项目依赖项的项目引用。
当我构建解决方案或测试项目时,我收到这些错误,代码文件中没有任何波浪线:
错误CS0246
找不到类型或命名空间名称“Fact”(您是否缺少 using 指令或程序集引用?)NetCoreMvcWebApp错误CS0246
找不到类型或命名空间名称“FactAttribute”(您是否缺少 using 指令或程序集引用?)NetCoreMvcWebApp错误CS0579
重复“global::System.Runtime.Versioning.TargetFrameworkAttribute”属性 NetCoreMvcWebApp
如何解决这些错误?
在根项目中运行“dotnet Restore”,现在 Xunit 在测试项目中被识别。
或者 解决方案的关键是让所有已安装的 xunit 软件包具有相同的版本。 -- 如果 NuGet 上只有少数有可用更新,请等到所有 xunit 软件包都可用于同一版本。