我最近更新为 TeamCity 9.1.6 ,以便根据 NUnit 3.2.1 运行我的新单元测试。但是现在我在运行测试时遇到了麻烦:
我在构建步骤中选择了NUnit3执行程序,并相应地进行了配置:
构建时,我收到错误:“无法加载文件或程序集'nunit.framework'或其中一个依赖项。系统无法找到指定的文件。”。
一切都应该没问题,路径很好,程序集在Test程序集的路径中,一切都是在AnyCPU配置中构建的。 还有一个错误声明NUnit版本不是发行版本,我认为是废话,它是NUnit网站上的一个版本。并且错误似乎没有破坏任何东西(即使我在'nunit.framework'错误之前出现错误,它仍然存在,当我修复那个错误时,构建得到了进一步的帮助。)
任何潜在客户都赞赏!
更新 使用命令行运行程序运行测试并运行相同的nunit3-console.exe工作正常。所以我想这是NUnit特定于跑步者的问题。不过,欢迎提出如何解决此问题的建议。
更新2: 我尝试将TeamCity使用的解决方案包和NUnit-Console降级到3.0.0 - 仍然是相同的结果。
更新3: 正如我所怀疑的,TeamCity支持确认有关“NUnit版本不受支持”的消息是错误的,不应该影响任何内容。
答案 0 :(得分:31)
我在TeamCity 10.0.1(build 42078)和NUnit 3.4.1中遇到了同样的问题。 事实证明这完全是我的错。我在这里发布它,因为其他人可能会遇到同样的问题,这可以节省一些时间。
事实证明问题出在构建配置的"Run tests from: "
设置中。
我有**\*.Test.dll
。那是意外地为\obj\**\
目录(没有nunit.framework.dll存在)的dll。将设置更改为**\bin\%BuildConfiguration%\*.test.dll
后,一切正常。
注意:%BuildConfiguration%是一个参数,它指定TC上的首选构建配置(如Debug / Release / CIBuild等)。
答案 1 :(得分:5)
经过与TeamCity技术支持的长时间电子邮件讨论后,我们找到了解决方案。我已经收到通知,他们已经在即将发布的TC10版本中解决了这个问题(将于2016年6月底发布),而且目前还有一些解决方法可以解决这个问题。
我已经尝试了第二,它对我有用。
答案 2 :(得分:0)
如果您的packages.config中还没有Nunit3和Nunit.Console(Runner),则应使用程序包管理器将其“安装”到您的项目中。
然后按照其他答案中的说明为Nunit.ConsoleRunner创建“自动检测”步骤。 https://stackoverflow.com/a/38862220/3794873