【问题标题】:xunit "could not load type" errorxunit“无法加载类型”错误
【发布时间】:2020-12-04 23:24:47
【问题描述】:

我继承了一个项目并且测试运行良好。今天,我创建了一个新类,当我尝试在测试中使用这个类时,xunit 出错了。

测试项目和应用都针对 .NET Framework 4.6.1。

我对解决方案和测试项目都进行了清理和重建,但我仍然收到错误。

错误:

无法从程序集“MyApp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”加载类型“MyNewClass”。

project.json:

"buildOptions": {
  "warningsAsErrors": true
},
"testRunner": "xunit",
"dependencies": {
  "xunit": "2.2.0-beta4-build3404",
  "dotnet-test-xunit": "2.2.0-preview2-build1029",
  "MyApp": "1.0.0-*",
  "Microsoft.EntityFrameworkCore.InMemory": "1.0.0",
  "NSubstitute": "1.9.2"
},

"frameworks": {
    "net461": {
    }
}

有人知道如何解决这个问题吗?

【问题讨论】:

  • MyNewClass 的名称空间缺失。检查这个类的声明位置。并将其放入所需的 NameSpace
  • 试着告诉我它是否解决了你的问题?
  • 它与测试项目中使用的其他类在同一个命名空间中。不认为就是这样,但感谢您尝试@viveknuna
  • 重命名dll然后试试

标签: c# asp.net-core .net-core xunit xunit.net


【解决方案1】:

有时,无论出于何种原因,.NET Core 依赖项还原不会按预期工作。我刚刚在我的机器上尝试了你的project.json,它抱怨xunit 版本,但是经过几次project.json 编辑后,它能够恢复所有依赖项,并成功运行测试。

在这种情况下,以下可能会有所帮助:

  1. 在您的project.json 文件所在的文件夹中尝试dotnet restore 和/或dotnet build 命令。
  2. 删除project.json.lock 文件并尝试步骤#1。
  3. 使用dotnet test 运行单元测试。

我发现运行.NET Core 项目的这些命令比 Visual Studio 更稳定,并为故障排除提供更好的错误输出。

【讨论】:

    【解决方案2】:

    所以,我的问题是 MyApp.dll 没有得到更新/重新创建,即使在我进行了清理和重建之后也是如此。我不得不物理删除 MyApp\test\MyApp.Tests\bin\Debug\net461\win7-x86 中的文件(包括 MyApp.dll)

    【讨论】:

      【解决方案3】:

      我也遇到了这个问题,可以通过重新创建项目来解决。

      有时,正如其他答案所指出的那样,事情只是停止正常工作,最好的方法是重新开始,重新启动程序,重新创建项目,重新启动机器......

      这是 Visual Studio,叹息... :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-10
        • 2020-09-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-17
        • 2021-09-20
        • 1970-01-01
        相关资源
        最近更新 更多