运行TeamCity VSTest构建步骤时路径中的非法字符

时间:2016-02-16 14:19:00

标签: continuous-integration teamcity vstest

我正在尝试使用内置的Visual Studio Tests运行程序在TeamCity(版本9.1.6 build 37459)上执行单元测试。我使用它的原因是某些单元测试使用的是Fakes程序集,并且无法使用MSTest执行。

执行该步骤时,它会因System.ArgumentException: Illegal characters in path.异常而失败并显示以下日志

Custom logger detection logic disabled
VSTest will report tests to TeamCity after run
VSTest executable: "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe"
Command line params: [[C:\TeamCity\buildAgent\work\475c180054f4c61d\NS\TestProject\bin\Debug\TestProject.dll] [/Settings:NS/localtestrun.testsettings] [/Logger:trx] [/Platform:x86]]
Starting: "C:\Program Files (x86)\TeamCity\buildAgent\plugins\dotnetPlugin\bin\JetBrains.BuildServer.NUnitLauncher.exe" #TeamCityImplicit
in directory: C:\TeamCity\buildAgent\work\475c180054f4c61d
2016-02-16 15:07:01,920 [7092] ERROR JetBrains.BuildServer.NAntLoggers.NUnitLauncher2 - Illegal characters in path.
System.ArgumentException: Illegal characters in path.
   at System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional)
   at System.IO.Path.IsPathRooted(String path)
   at JetBrains.TeamCity.Utils.FileUtil.MakeFullPath(String path, String workDir) in c:\BuildAgent\work\ad31cec0a1b0f083\src\Utils\src\FileUtil.cs:line 48
   at JetBrains.TeamCity.GenericProcessSupport.GenericProcessTargetGenerator.GenerateTargetContent(IGenericProcessArguments argz) in c:\BuildAgent\work\ad31cec0a1b0f083\src\GenericProcessSupport\src\GenericProcessTargetGenerator.cs:line 31
   at JetBrains.TeamCity.GenericProcessSupport.GenericProcessRunnerFactory.CreateRunner(ITestRunArguments args) in c:\BuildAgent\work\ad31cec0a1b0f083\src\GenericProcessSupport\src\GenericProcessRunnerFactory.cs:line 35
   at JetBrains.BuildServer.NAntLoggers.RunnerFactory.FindTestRunner(ITestRunArguments arguments) in c:\BuildAgent\work\ad31cec0a1b0f083\src\NUnitBootstrap\src\RunnerFactory.cs:line 46
   at JetBrains.BuildServer.NAntLoggers.RunnerFactory.CreateTestRunner(ITestRunArguments arguments) in c:\BuildAgent\work\ad31cec0a1b0f083\src\NUnitBootstrap\src\RunnerFactory.cs:line 31
   at JetBrains.BuildServer.NAntLoggers.NUnitLauncher2.Run2(String[] args) in c:\BuildAgent\work\ad31cec0a1b0f083\src\NUnitBootstrap\src\NUnitLauncher2.cs:line 100
   at JetBrains.BuildServer.NAntLoggers.NUnitLauncher2.Run(String[] args) in c:\BuildAgent\work\ad31cec0a1b0f083\src\NUnitBootstrap\src\NUnitLauncher2.cs:line 56

我在网上找到的所有atricles / blog帖子都没有,我既不知道哪条路径包含非法字符,也不知道这些字符是什么。

有人可以帮忙吗?感谢。

1 个答案:

答案 0 :(得分:1)

面对同样的问题。经过数小时的谷歌搜索问题后,在参数值中添加了引号。删除它,它将起作用。 找到它,将成功的构建日志与失败的构建日志进行比较。成功运行后,此行中没有引号: VSTest可执行文件: C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow \ vstest.console.exe