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

16
我最近更新了 TeamCity 9.1.6 来运行基于 NUnit 3.2.1 的新单元测试。但现在我遇到了一些运行测试的问题:
我已经在构建步骤中选择了 NUnit3 执行器,并进行了相应的配置:

Build step configuration

在构建时,我遇到了一个错误:"无法加载文件或程序集'nunit.framework'或其某个依赖项。系统找不到指定的文件。"

Build log

一切应该都没问题,路径正确,装配在测试程序集的路径中,所有内容都是以AnyCPU配置构建的。 还有一个错误显示NUnit版本不是发布版本,我认为这是胡说八道,因为在NUnit网站上它是发布的。而且这个错误似乎并没有破坏任何东西(即使在出现“nunit.framework”错误之前就已经存在,在我修复了那个错误后,构建也进展了)。
欢迎任何线索!
更新: 使用命令行运行器运行测试,并运行相同的nunit3-console.exe可以正常工作。所以我想这是一个NUnit运行器特定的问题。然而,欢迎提出如何解决这个问题的建议。
更新2: 我尝试将解决方案包和TeamCity使用的NUnit-Console都降级到3.0.0 - 结果仍然相同。
更新3: 正如我怀疑的那样,TeamCity支持确认“NUnit版本不受支持”的消息是错误的,不应影响任何东西。

1
这仍然是10.x版本的一个问题,因为构建失败了,所以这是一个问题。 - Mukus
很遗憾。不过我仍然有效地使用这个解决方法。我没有时间重新配置并尝试无需解决方法的解决方案。 - Jurijs Kastanovs
3个回答

45

我在使用TeamCity 10.0.1 (build 42078)和NUnit 3.4.1时遇到了同样的问题,后来发现完全是我的错。我在这里发布它,因为其他人也可能会遇到同样的问题,这可以节省他们一些时间。

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

enter image description here

我设置了 **\*.Test.dll,结果意外地捕捉到了\obj\**\目录下的dll(其中没有nunit.framework.dll)。一旦我将设置更改为**\bin\%BuildConfiguration%\*.test.dll,就一切正常了。

注意: %BuildConfiguration% 是指定您在TC上喜欢的构建配置(如Debug / Release / CIBuild等)的参数。


这个问题让我感觉到非常棘手,因为JetBrains DotCover和NUnit返回了一个-100的代码,导致我的构建管道在运行一些集成测试后被标记为失败,即使所有的测试都是成功的。但是,在添加%BuildConfiguration%之后,我能够解决测试程序集dlls的问题。 - Tore Aurstad

7

经过与TeamCity技术支持的长时间邮件讨论,我们找到了解决方案。我已经收到通知,他们将在即将发布的TC10版本(预计在2016年6月底发布)中修复此问题,并且现在有一些解决方法可以解决这个问题。

我尝试了第二种方法,它对我起作用了。

  1. 仅在相对于检出目录的嵌套目录中运行测试(例如,您可以在运行测试之前将其复制)

  2. 向构建配置参数添加nunit_use_project_file,值为False

    Edit Parameter popup

    也就是说,我进入我的测试构建和运行项目,进入参数部分,将新参数“nunit_use_project_file”设置为False。现在,测试正在NUnit3构建步骤运行器下运行。


我曾经遇到过相同的错误,第二种解决方案对我很有用。但是现在升级到TeamCity 10.0.1之后,这个错误又出现了,导致我们无法运行任何测试。你有什么想法吗? - sam
@sam 我建议你尝试联系TeamCity支持。他们可能需要一两天时间才能回复,但他们会提供帮助的。 - Jurijs Kastanovs
以下链接,就像@Mathew上面的评论一样,为我解决了这个问题:https://dev59.com/k3A65IYBdhLWcg3wuhIR#3668371 - sacretruth
选项2对我们没有起作用...同样的错误,退出代码为-100。 - diegohb

0
如果您的packages.config中没有Nunit3和Nunit.Console(Runner),您应该使用包管理器将其“安装”到您的项目中。
然后,按照这个其他答案中关于为Nunit.ConsoleRunner创建一个“自动检测”步骤的指示进行操作。https://dev59.com/D1sX5IYBdhLWcg3wY-vX#38862220

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接