无法从TeamCity运行NUnit测试

8

我在使用Nunit构建运行器的Teamcity中运行Nunit测试时遇到了问题。

直到现在,这些测试是从托管Teamcity和构建代理的机器上运行的。并且这些测试在该机器上按预期运行。但是我们将测试从该机器移动到另一台机器上,当我尝试从该其他机器运行测试时,出现以下错误:

[10:57:25]: 2012-08-01 10:57:25,688 [9052] ERROR JetBrains.BuildServer.NAntLoggers.NUnitLauncher2 - Compatible parser was not found
[10:57:25]: JetBrains.BuildServer.NUnitLauncher.exe #TeamCityImplicit
[10:57:25]: Arguments will be recieved implicitly
[10:57:25]: JetBrains.BuildServer.NUnitLauncher.exe @@ <xml-arguments-file>
[10:57:25]: JetBrains.BuildServer.NUnitLauncher.exe {v1.1|v2.0|mono-1.0|mono-2.0|ANY} {MSIL|x86|x64} Plugin{|Plugin...}
[10:57:25]: Plugin PartCover:
[10:57:25]: /partcover:<path to PartCover.exe> [/partcover-arg:<arg>]* [/partcover-arguments:<arguments line>] [/partcover-platform:<MSIL|x86|x64|NATIVE>@<v1.1|v2.0|ANY|NATIVE>] [/partcover-reg:true]
[10:57:25]: Where:
[10:57:25]: /partcover-arg: argument should be repeated for every argument of PartCover
[10:57:25]: /partcover-arguments: argument should be excaped to be passed to the program as one argument
[10:57:25]: Plugin mstest:
[10:57:25]: /mstestlocation:[ directory name ] /testcontainer:[ file name ] [/isolated] /runconfig:[ file name ]
[10:57:25]: Plugin dotCover:
[10:57:25]: /dotcover:<path to dotCover.exe> [/dotcover-platform:<MSIL|x86|x64|NATIVE>@<v1.1|v2.0|ANY|NATIVE>] [/dotcover-logs:<logs_folder>]
[10:57:25]: Plugin NCover:
[10:57:25]: /ncover:<path to NCover.Console.exe> [/ncover-arg:<arg>]* [/ncover-arguments:<arguments line>] [/ncover-platform:<MSIL|x86|x64|NATIVE>@<v1.1|v2.0|ANY|NATIVE>]
[10:57:25]: Where:
[10:57:25]: /ncover-arg: argument should be repeated for every argument of NCover
[10:57:25]: /ncover-arguments: argument should be excaped to be passed to the program as one argument
[10:57:25]: Plugin NUnit-*:
[10:57:25]: No assemblies were found.
[10:57:25]: No assemblies were found.
[10:57:25]: [/category-include:categories] [/category-exclude:categories] [/addin:addins] [/runAssemblies:processPerAssembly] <assembly>[(;| )<assembly>[...]]
[10:57:25]: Supported plugin names:
[10:57:25]: NUnit-2.2.10
[10:57:25]: NUnit-2.2.9-VSTS
[10:57:25]: NUnit-2.2.9-VSTS-9.0
[10:57:25]: NUnit-2.4.1
[10:57:25]: NUnit-2.4.6
[10:57:25]: NUnit-2.4.7
[10:57:25]: NUnit-2.4.8
[10:57:25]: NUnit-2.4.8-resharper
[10:57:25]: NUnit-2.5.0
[10:57:25]: NUnit-2.5.10
[10:57:25]: NUnit-2.5.2
[10:57:25]: NUnit-2.5.3
[10:57:25]: NUnit-2.5.4
[10:57:25]: NUnit-2.5.5
[10:57:25]: NUnit-2.5.6
[10:57:25]: NUnit-2.5.7
[10:57:25]: NUnit-2.5.7-resharper
[10:57:25]: NUnit-2.5.8
[10:57:25]: NUnit-2.5.9
[10:57:25]: 2012-08-01 10:57:25,712 [9052] ERROR JetBrains.BuildServer.NAntLoggers.NUnitLauncher2 - Failed to parse arguments
[10:57:25]: Process exited with code -1

运行这些测试的构建代理位于一台机器上(比如Machine-a),而测试位于另一台机器上(Machine-b)。因此,我正在使用位于Machine-a上的构建代理来在Machine-b上运行测试,并出现了上述错误。我不确定是否有效,因为构建代理位于不同的机器上。

我还在Machine-c上安装了另一个构建代理。所以我尝试使用与同一台机器(Machine-c)的构建代理来运行位于Machine-c上的NUnit测试,结果得到以下错误。

[14:33:02]: 2012-08-01 14:33:02,755 [3116] ERROR JetBrains.BuildServer.NAntLoggers.NUnitLauncher2 - Failed to parse arguments
[14:33:02]: No assemblies were found.
[14:33:02]: Process exited with code -1

我很困惑,不知道在机器B、机器C是否缺少一些NUnit程序集(可以从其他机器上轻松复制),还是存在其他问题。

我也想知道Teamcity、构建代理和NUnit测试是否都应该在同一台机器上才能成功运行测试(就像我们现在正在做的那样)。

请有人帮助我解决这个问题。

谢谢。


如果你的 NUnit 运行程序设置了 CLR 的错误版本(例如 2.0 而不是 4.0),就会出现另一个原因导致这种情况的发生。 - Chris S
1个回答

4
实际上,我无法运行测试的原因是,我试图使用网络共享名称访问测试程序集。但是,Teamcity的NUnit构建运行器期望相对于其检出/构建目录或绝对路径的路径,而不是具有网络共享名称的路径。

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