NUnit 3.2.1 + TeamCity:无法加载文件或程序集 'nunit.framework'

NUnit 3.2.1 + TeamCity: Could not load file or assembly 'nunit.framework'

我最近更新到 TeamCity 9.1.6 运行 我的新单元测试基于 NUnit 3.2.1.但是现在我在 运行 测试中遇到了麻烦:

我在构建步骤中选择了 NUnit3 执行器,并对其进行了相应配置:

构建时出现错误:"Could not load file or assembly 'nunit.framework' or one of its dependencies. The system cannot find the file specified."

一切都应该没问题,路径没问题,程序集在测试程序集的路径中,一切都是在 AnyCPU 配置中构建的。 还有一个错误指出 NUnit 版本不是发行版,我认为这是胡说八道,它是 NUnit 网站上的发行版。而且这个错误似乎并没有破坏任何东西(即使我在 'nunit.framework' 错误之前出现错误,它仍然存在,当我修复那个错误时,构建更进一步)。

感谢任何线索!

更新: 运行 使用命令行 运行ner 和 运行ning 测试相同的 nunit3-console.exe 工作正常。所以我想这是一个 NUnit 运行ner 特定的问题。不过,欢迎就如何解决此问题提出建议。

更新 2: 我尝试将解决方案包和 TeamCity 使用的 NUnit-Console 降级到 3.0.0 - 仍然是相同的结果。

更新 3: 正如我所怀疑的,TeamCity 支持人员确认关于 "NUnit version not being supported" 的消息是错误的,应该不会影响任何事情。

在与 TeamCity 技术支持进行了长时间的电子邮件讨论后,我们找到了解决方案。我已获悉他们已在即将发布的 TC10 版本(2016 年 6 月下旬发布)中解决了这个问题,目前有几个解决方法可以解决这个问题。

我试过第二个,它对我有用。

  1. 运行 仅在相对于结帐目录的嵌套目录中测试(例如,您可以之前复制它们)

  2. 添加构建配置参数nunit_use_project_fileFalse:

    也就是说,我转到我的测试建筑和 运行 项目,转到“参数”部分并​​将新参数 "nunit_use_project_file" 添加为 False。现在 运行 在 NUnit3 build step runner 下进行测试。

我在使用 TeamCity 10.0.1(内部版本 42078)和 NUnit 3.4.1 时遇到了同样的问题。 结果完全是我的错。我将它张贴在这里,因为其他人可能会遇到同样的问题,这可以节省他们一些时间。

原来问题出在我的构建配置中的 "Run tests from: " 设置中。

我有 **\*.Test.dll。那是不小心为 \obj\**\ 目录(没有 nunit.framework.dll 存在)拾取 dll。一旦我将设置更改为 **\bin\%BuildConfiguration%\*.test.dll,一切正常。

注意:%BuildConfiguration% 是一个参数,用于指定您在 TC 上的首选构建配置(如 Debug/Release/CIBuild 等)

如果您的 packages.config 中还没有 Nunit3 和 Nunit.Console(Runner),您应该 "install" 使用包管理器将它添加到您的项目中。

然后按照此其他答案中有关为 Nunit.Console 跑步者创建 "auto detect" 步骤的说明进行操作。