【发布时间】:2015-07-07 22:07:53
【问题描述】:
我正在尝试使用 MSTest Runner 从 TeamCity 执行 CodedUI 测试。为了执行 CodedUI 测试,我在 TeamCity Server 上安装了 Visual Studio 测试代理,并使用 MSTest 配置了构建步骤。
以下是错误日志。
Step 5/5: Execute CodedUI Test (MSTest) (1s)
[18:31:25]Starting: C:\BuildAgent\plugins\dotnetPlugin\bin\JetBrains.BuildServer.NUnitLauncher.exe #TeamCityImplicit
[18:31:25]in directory: C:\BuildAgent\work\1a7958057951b685
[18:31:27]2015-01-02 18:31:27,536 [58756] ERROR JetBrains.BuildServer.NAntLoggers.NUnitLauncher2 - Failed to start process. Access is denied. Path: C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE, arguments: /testcontainer:C:\BuildAgent\work\1a7958057951b685\src\BitwiseMobile.UnitTests\bin\CI\BitwiseMobile.UnitTests.dll /testcontainer:C:\BuildAgent\work\1a7958057951b685\src\BitwiseMobile.UnitTests\bin\CI\BitwiseMobile.Tests.dll /testcontainer:C:\BuildAgent\work\1a7958057951b685\src\BitwiseMobile.CodedUITests\bin\CI\MobileSecurityAppCodedUITests.dll /testcontainer:C:\BuildAgent\work\1a7958057951b685\src\BitwiseMobile.Tests\bin\CI\BitwiseMobile.Tests.dll /resultsfile:C:\TeamCity\temp\buildTmp\tmp1BB9.tmp.teamcity.trx, at C:\BuildAgent\work\1a7958057951b685
[18:31:27]System.Exception: Failed to start process. Access is denied. Path: C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE, arguments: /testcontainer:C:\BuildAgent\work\1a7958057951b685\src\BitwiseMobile.UnitTests\bin\CI\BitwiseMobile.UnitTests.dll /testcontainer:C:\BuildAgent\work\1a7958057951b685\src\BitwiseMobile.UnitTests\bin\CI\BitwiseMobile.Tests.dll /testcontainer:C:\BuildAgent\work\1a7958057951b685\src\BitwiseMobile.CodedUITests\bin\CI\MobileSecurityAppCodedUITests.dll /testcontainer:C:\BuildAgent\work\1a7958057951b685\src\BitwiseMobile.Tests\bin\CI\BitwiseMobile.Tests.dll /resultsfile:C:\TeamCity\temp\buildTmp\tmp1BB9.tmp.teamcity.trx, at C:\BuildAgent\work\1a7958057951b685 ---> System.ComponentModel.Win32Exception: Access is denied
[18:31:27] at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
[18:31:27] at System.Diagnostics.Process.Start()
[18:31:27] at JetBrains.TeamCity.Utils.ProcessRunnerBase.Run(ProcessStartInfo psi) in c:\BuildAgent\work\42f5b4bce579465c\src\Utils\src\ProcessRunnerBase.cs:line 61
[18:31:27] --- End of inner exception stack trace ---
[18:31:27] at JetBrains.TeamCity.Utils.ProcessRunnerBase.Run(ProcessStartInfo psi) in c:\BuildAgent\work\42f5b4bce579465c\src\Utils\src\ProcessRunnerBase.cs:line 65
[18:31:27] at JetBrains.TeamCity.Utils.Runtime.ProcessRun.Execute(IRunProcess proc) in c:\BuildAgent\work\42f5b4bce579465c\src\Utils\src\Runtime\ProcessRun.cs:line 123
[18:31:27] at JetBrains.TeamCity.Utils.Runtime.ProcessRun.Run(String executable, PlatformVersion env, PlatformType platform, EnvironmentArg[] envKeys, String[] args) in c:\BuildAgent\work\42f5b4bce579465c\src\Utils\src\Runtime\ProcessRun.cs:line 58
[18:31:27] at JetBrains.TeamCity.Utils.Runtime.ProcessRun.RunWithCommandLine(PlatformVersion env, PlatformType platform, String assembly, EnvironmentArg[] additionalEnvironment, String[] args) in c:\BuildAgent\work\42f5b4bce579465c\src\Utils\src\Runtime\ProcessRun.cs:line 49
[18:31:27] at JetBrains.TeamCity.Utils.Runtime.ProcessRun.RunWithCommandLine(PlatformVersion env, PlatformType platform, String assembly, String[] args) in c:\BuildAgent\work\42f5b4bce579465c\src\Utils\src\Runtime\ProcessRun.cs:line 41
[18:31:27] at JetBrains.TeamCity.Utils.Runtime.RunInRuntime.ForkInRuntime(PlatformVersion version, PlatformType type, String executable, String[] args) in c:\BuildAgent\work\42f5b4bce579465c\src\Utils\src\Runtime\RunInRuntime.cs:line 50
[18:31:27] at JetBrains.TeamCity.NUnitCommon.PlugableRunFactory.RunProcessAsPlugable.Run() in c:\BuildAgent\work\42f5b4bce579465c\src\TestRunnerCommon\src\PlugableRunFactory.cs:line 33
[18:31:27] at JetBrains.BuildServer.NAntLoggers.NUnitLauncher2.ExecuteTasks(ITestRunArguments arguments, IPlugableTestRunner[] plugRuns) in c:\BuildAgent\work\42f5b4bce579465c\src\NUnitBootstrap\src\NUnitLauncher2.cs:line 136
[18:31:27] at JetBrains.BuildServer.NAntLoggers.NUnitLauncher2.Run2(String[] args) in c:\BuildAgent\work\42f5b4bce579465c\src\NUnitBootstrap\src\NUnitLauncher2.cs:line 114
[18:31:27] at JetBrains.BuildServer.NAntLoggers.NUnitLauncher2.Run(String[] args) in c:\BuildAgent\work\42f5b4bce579465c\src\NUnitBootstrap\src\NUnitLauncher2.cs:line 57
[18:31:27]Failed to start process. Access is denied.
Path: C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE, arguments: /testcontainer:C:\BuildAgent\work\1a7958057951b685\src\BitwiseMobile.UnitTests\bin\CI\BitwiseMobile.UnitTests.dll /testcontainer:C:\BuildAgent\work\1a7958057951b685\src\BitwiseMobile.UnitTests\bin\CI\BitwiseMobile.Tests.dll /testcontainer:C:\BuildAgent\work\1a7958057951b685\src\BitwiseMobile.CodedUITests\bin\CI\MobileSecurityAppCodedUITests.dll /testcontainer:C:\BuildAgent\work\1a7958057951b685\src\BitwiseMobile.Tests\bin\CI\BitwiseMobile.Tests.dll /resultsfile:C:\TeamCity\temp\buildTmp\tmp1BB9.tmp.teamcity.trx, at C:\BuildAgent\work\1a7958057951b685
at JetBrains.TeamCity.Utils.ProcessRunnerBase.Run(ProcessStartInfo psi) in c:\BuildAgent\work\42f5b4bce579465c\src\Utils\src\ProcessRunnerBase.cs:line 65
at JetBrains.TeamCity.Utils.Runtime.ProcessRun.Execute(IRunProcess proc) in c:\BuildAgent\work\42f5b4bce579465c\src\Utils\src\Runtime\ProcessRun.cs:line 123
at JetBrains.TeamCity.Utils.Runtime.ProcessRun.Run(String executable, PlatformVersion env, PlatformType platform, EnvironmentArg[] envKeys, String[] args) in c:\BuildAgent\work\42f5b4bce579465c\src\Utils\src\Runtime\ProcessRun.cs:line 58
at JetBrains.TeamCity.Utils.Runtime.ProcessRun.RunWithCommandLine(PlatformVersion env, PlatformType platform, String assembly, EnvironmentArg[] additionalEnvironment, String[] args) in c:\BuildAgent\work\42f5b4bce579465c\src\Utils\src\Runtime\ProcessRun.cs:line 49
at JetBrains.TeamCity.Utils.Runtime.ProcessRun.RunWithCommandLine(PlatformVersion env, PlatformType platform, String assembly, String[] args) in c:\BuildAgent\work\42f5b4bce579465c\src\Utils\src\Runtime\ProcessRun.cs:line 41
at JetBrains.TeamCity.Utils.Runtime.RunInRuntime.ForkInRuntime(PlatformVersion version, PlatformType type, String executable, String[] args) in c:\BuildAgent\work\42f5b4bce579465c\src\Utils\src\Runtime\RunInRuntime.cs:line 50
at JetBrains.TeamCity.NUnitCommon.PlugableRunFactory.RunProcessAsPlugable.Run() in c:\BuildAgent\work\42f5b4bce579465c\src\TestRunnerCommon\src\PlugableRunFactory.cs:line 33
at JetBrains.BuildServer.NAntLoggers.NUnitLauncher2.ExecuteTasks(ITestRunArguments arguments, IPlugableTestRunner[] plugRuns) in c:\BuildAgent\work\42f5b4bce579465c\src\NUnitBootstrap\src\NUnitLauncher2.cs:line 136
at JetBrains.BuildServer.NAntLoggers.NUnitLauncher2.Run2(String[] args) in c:\BuildAgent\work\42f5b4bce579465c\src\NUnitBootstrap\src\NUnitLauncher2.cs:line 114
at JetBrains.BuildServer.NAntLoggers.NUnitLauncher2.Run(String[] args) in c:\BuildAgent\work\42f5b4bce579465c\src\NUnitBootstrap\src\NUnitLauncher2.cs:line 57
[18:31:27]Process exited with code -1
[18:31:27]Step Execute CodedUI Test (MSTest) failed
我尝试将所有可能的权限授予 MSTest 文件夹,但仍然无法正常工作。我可以从命令提示符运行 MSTest.exe,但不能通过 TeamCity。
【问题讨论】:
-
从错误看来,访问路径被拒绝:C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE,它正试图从那里开始一个进程.运行 TeamCity 的特定用户可能需要访问给定路径的权限,并且可能需要本地安全策略权限才能以非交互方式运行进程。
-
我也尝试向此文件夹中的所有人授予权限,但仍然无法正常工作。还尝试将 MSTest.exe 复制到 TeamCity 代理文件夹,但仍然是同样的问题。
-
看看这个thread 相关位是: 它最终成为我输入的通配符路径,用于说明要运行哪个测试 dll。它不喜欢 *.dll 但确实可以与 **/bin/Release/*.Test.dll 一起使用,但两者都产生了日志中列出的相同参数。最糟糕的部分是错误极具误导性。直到我从命令行运行 C:\TeamCity\buildAgent\plugins\dotnetPlugin\bin\JetBrains.BuildServer.NUnitLauncher.exe #TeamCityImplicit 并用谷歌搜索它发布的错误时,我才弄明白。
-
也试过了。还是没有运气。
标签: permissions teamcity coded-ui-tests