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

时间:2016-05-03 05:50:55

标签: .net nunit teamcity nunit-3.0 teamcity-9.1

我最近更新为 TeamCity 9.1.6 ,以便根据 NUnit 3.2.1 运行我的新单元测试。但是现在我在运行测试时遇到了麻烦:

我在构建步骤中选择了NUnit3执行程序,并相应地进行了配置:

Build step configuration

构建时,我收到错误:“无法加载文件或程序集'nunit.framework'或其中一个依赖项。系统无法找到指定的文件。”

Build log

一切都应该没问题,路径很好,程序集在Test程序集的路径中,一切都是在AnyCPU配置中构建的。 还有一个错误声明NUnit版本不是发行版本,我认为是废话,它是NUnit网站上的一个版本。并且错误似乎没有破坏任何东西(即使我在'nunit.framework'错误之前出现错误,它仍然存在,当我修复那个错误时,构建得到了进一步的帮助。)

任何潜在客户都赞赏!

更新 使用命令行运行程序运行测试并运行相同的nunit3-console.exe工作正常。所以我想这是NUnit特定于跑步者的问题。不过,欢迎提出如何解决此问题的建议。

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

更新3: 正如我所怀疑的,TeamCity支持确认有关“NUnit版本不受支持”的消息是错误的,不应该影响任何内容。

3 个答案:

答案 0 :(得分:31)

我在TeamCity 10.0.1(build 42078)和NUnit 3.4.1中遇到了同样的问题。 事实证明这完全是我的错。我在这里发布它,因为其他人可能会遇到同样的问题,这可以节省一些时间。

事实证明问题出在构建配置的"Run tests from: "设置中。

enter image description here

我有**\*.Test.dll。那是意外地为\obj\**\目录(没有nunit.framework.dll存在)的dll。将设置更改为**\bin\%BuildConfiguration%\*.test.dll后,一切正常。

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

答案 1 :(得分:5)

经过与TeamCity技术支持的长时间电子邮件讨论后,我们找到了解决方案。我已经收到通知,他们已经在即将发布的TC10版本中解决了这个问题(将于2016年6月底发布),而且目前还有一些解决方法可以解决这个问题。

我已经尝试了第二,它对我有用。

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

  2. 将构建配置参数nunit_use_project_file添加到False

    Edit Parameter popup

    也就是说,我去了我的测试构建和运行项目,转到参数部分并添加了新参数" nunit_use_project_file"如此错。测试现在在NUnit3构建步骤运行器下运行。

答案 2 :(得分:0)

如果您的packages.config中还没有Nunit3和Nunit.Console(Runner),则应使用程序包管理器将其“安装”到您的项目中。

然后按照其他答案中的说明为Nunit.ConsoleRunner创建“自动检测”步骤。 https://stackoverflow.com/a/38862220/3794873