【问题标题】:Teamcity Nunit 3.0 Console Runner not workingTeamcity Nunit 3.0 控制台运行程序不工作
【发布时间】:2016-05-17 15:33:10
【问题描述】:

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

当我运行配置时,我收到以下错误

>  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 的兼容性有问题,但我不确定。
  • “可执行文件的格式...”表示 x86 和 x64 二进制文件混淆了。您是否为 x86 编译过测试?在 x64 系统上,nunit-console.exe 被 JITed 为 64 位。尝试通过--x86parameter
  • 您使用哪个 nuget 包来获取控制台运行程序?看看这个:github.com/nunit/nunit/issues/1525

标签: c# teamcity teamcity-9.0 nunit-console nunit-3.0


【解决方案1】:

使用 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 运行代码覆盖,即使测试成功,它也会失败。如果是这种情况,请尝试禁用代码覆盖。

【讨论】:

  • 你好Christian,谢谢你的回复,我恐怕不明白,为什么我不能通过给它单元测试Dll的路径来运行控制台运行器?我尝试使用命令提示符手动运行 Nunit 控制台测试并将其指向 Dll,它可以正常工作,但是当我从 Team City 运行相同的命令时它会失败。我暂时不使用 JetBrains DotCover。
【解决方案2】:

为了让它工作,我使用 NuGet 将 NUnit.ConsoleRunner v 3.5.0 添加到我的项目中。然后我得到一个错误:“不支持文件类型”,修复我添加了 NUnit.Extension.NUnitProjectLoader v 3.5.0。 (我尝试使用 NUnit.Extension.VSProjectLoader 但这并没有解决我的问题)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多