Teamcity Nunit 3.0控制台运行器无法工作

4

我正在尝试将NUnit 3.0控制台运行器与Teamcity一起使用。以下是我的配置:

enter image description here

运行配置时,我收到以下错误消息:

>  Run Unit Tests (NUnit) (1s)
[10:44:03][Step 3/3] ##teamcity[buildStatisticValue key='buildStageDuration:buildStepRUNNER_3' value='0.0']
[10:44:03][Step 3/3] Starting: C:\TeamCity\buildAgent\work\e6cc09e5f0da4a07\Libs\NUnit.Console.3.0.1\tools\nunit3-console.exe C:\TeamCity\buildAgent\temp\buildTmp\O1YAIPlezg1Cm2NfZTD88h0Nb2Q14zOF.nunit --work=C:\TeamCity\buildAgent\work\e6cc09e5f0da4a07 --noresult --noheader
[10:44:03][Step 3/3] in directory: C:\TeamCity\buildAgent\work\e6cc09e5f0da4a07
[10:44:03][Step 3/3] Runtime Environment
[10:44:03][Step 3/3]    OS Version: Microsoft Windows NT 10.0.10586.0
[10:44:03][Step 3/3]   CLR Version: 4.0.30319.42000
[10:44:03][Step 3/3] 
[10:44:03][Step 3/3] Test Files
[10:44:03][Step 3/3]     C:\TeamCity\buildAgent\temp\buildTmp\O1YAIPlezg1Cm2NfZTD88h0Nb2Q14zOF.nunit
[10:44:03][Step 3/3] 
[10:44:04][Step 3/3] 
[10:44:04][Step 3/3] Errors and Failures
[10:44:04][Step 3/3] 
[10:44:04][Step 3/3] 1) Invalid : C:\TeamCity\buildAgent\temp\buildTmp\O1YAIPlezg1Cm2NfZTD88h0Nb2Q14zOF.nunit
[10:44:04][Step 3/3] Format of the executable (.exe) or library (.dll) is invalid.
[10:44:04][Step 3/3] 
[10:44:04][Step 3/3] Test Run Summary
[10:44:04][Step 3/3]     Overall result: Failed
[10:44:04][Step 3/3]    Tests run: 0, Passed: 0, Errors: 0, Failures: 0, Inconclusive: 0
[10:44:04][Step 3/3]      Not run: 0, Invalid: 0, Ignored: 0, Explicit: 0, Skipped: 0
[10:44:04][Step 3/3]   Start time: 2016-02-08 02:44:04Z
[10:44:04][Step 3/3]     End time: 2016-02-08 02:44:04Z
[10:44:04][Step 3/3]     Duration: 0.006 seconds
[10:44:04][Step 3/3] 
[10:44:04][Step 3/3] Process exited with code -2
[10:44:04][Step 3/3] ##teamcity[buildStatisticValue key='buildStageDuration:buildStepRUNNER_3' value='1095.0']
[10:44:04][Step 3/3] Step Run Unit Tests (NUnit) failed

从错误信息来看,我猜测无法找到Dll文件来运行测试,但是我已经检查了检出目录中的路径和文件,一切似乎都正确。请告诉我我做错了什么?


我不确定问题出在哪里,但是我放弃使用 NUnit 3.0 版本,退回到版本 2.6.4,一切都正常工作。我唯一的猜测是 NUnit 3.0 与 Team City 兼容存在问题,但我不能确定。 - Afraz Ali
“可执行文件的格式…” 意味着 x86 和 x64 二进制文件被混合使用了。你是否为 x86 编译了测试?在 x64 系统上,nunit-console.exe 被 JIT 编译为 64 位。尝试传递 --x86 参数 - Panagiotis Kanavos
你使用了哪个NuGet包来获取控制台运行程序?看一下这个链接:https://github.com/nunit/nunit/issues/1525 - Chris
2个回答

2
手动运行测试,使用Team City使用的命令:
在目录C:\TeamCity\buildAgent\work\e6cc09e5f0da4a07中运行: C:\TeamCity\buildAgent\work\e6cc09e5f0da4a07\Libs\NUnit.Console.3.0.1\tools\nunit3-console.exe C:\TeamCity\buildAgent\temp\buildTmp\O1YAIPlezg1Cm2NfZTD88h0Nb2Q14zOF.nunit --work=C:\TeamCity\buildAgent\work\e6cc09e5f0da4a07 --noresult --noheader 有关更多参数,请参见https://github.com/nunit/docs/wiki/Console-Command-Line 如果您增加跟踪信息,则可以获得更多信息。
此外,如果正在使用JetBrains dotCover运行代码覆盖率,则即使测试成功,它也会失败。如果是这种情况,请尝试禁用代码覆盖率。

2
嗨,Christian,感谢您的回复。恐怕我不明白,为什么我不能通过给出单元测试 Dll 的路径来运行控制台运行程序?我已经尝试手动使用命令提示符运行 Nunit 控制台测试,并将其指向 Dll,它可以正常工作,但是当我从 Team City 运行相同的命令时,它会失败。目前我没有使用JetBrains DotCover。 - Afraz Ali

1
为了使其工作,我使用NuGet将NUnit.ConsoleRunner v 3.5.0添加到我的项目中。然后我遇到了一个错误:“文件类型不受支持”,为了解决这个问题,我添加了NUnit.Extension.NUnitProjectLoader v 3.5.0。(我尝试使用NUnit.Extension.VSProjectLoader但无法解决我的问题)

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