【问题标题】:How to prevent chromedriver.exe from being locked on TFS build server? [duplicate]如何防止 chromedriver.exe 在 TFS 构建服务器上被锁定? [复制]
【发布时间】:2014-10-27 18:09:29
【问题描述】:

我在我们的 TFS 构建服务器上大约 50% 的时间会收到此错误:

Exception Message: Access to the path 'C:\Builds\5673\Company\QA_Web_Tests\bin\WebDrivers\chromedriver.exe' is denied. (type UnauthorizedAccessException)
Exception Stack Trace:    at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.File.InternalDelete(String path, Boolean checkHost)
   at Microsoft.TeamFoundation.Common.FileSpec.DeleteFile(String path, Boolean throwExceptionOnFailure)
   at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryInternal(String path)
   at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryInternal(String path)
   at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectory(String path, Boolean recursive)
   at Microsoft.TeamFoundation.Build.Workflow.Activities.DeleteDirectory.Execute(CodeActivityContext context)
   at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager)
   at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)

这是一个 4 核处理器,启用了并行测试(通过 MSTest)。

一种解决方法是在构建之间重新启动服务器。但是当我们想要每天运行多次测试时,这会很繁重。

还有其他人遇到过这种情况吗?你知道解决办法吗?谢谢。

这是我的清理方法:

public void Cleanup()
{
    WebDriver.Quit();
    Console.WriteLine(@"[console] TEST END. Datetime: " + DateTime.Now);
    _stopWatch.Stop();
    Console.WriteLine(@"[console] TEST DURATION: " + _stopWatch.Elapsed);
}

【问题讨论】:

  • 您解决了这个问题吗?我们在构建时使用 Selenium 自动化 UI 测试时遇到了同样的问题。斯蒂沃
  • 嘿,你有没有设法解决这个问题?
  • Jeevan,它有点自行消失了。我不是服务器的管理员,所以我不确定,但可能是一些 Windows 补丁修复了它。

标签: tfs selenium-webdriver locking selenium-chromedriver


【解决方案1】:

问题是您的测试会启动 webdriver,但不要将其关闭。

最佳解决方案是不在构建中运行 UI 测试 - UI 测试应该在部署后进行,并且最好与 MTM 测试用例相关联,或者作为发布后的操作。 MTM/Lab 管理专为 UI 测试而设计,是更适合这项工作的工具。

解决您的特定问题的方法是更改​​您的测试,以便在测试后操作中正确关闭 Web 驱动程序。完成此任务的确切机制取决于您!

【讨论】:

  • 感谢您的回复;但是,在这种情况下,这不是问题。我有一个执行 .Quit() 的清理方法。我将在上面的问题正文中包含该方法。此外,UI 测试确实在环境完全部署后运行,所以这也不是问题。测试构建只是运行测试。
猜你喜欢
  • 2014-07-17
  • 1970-01-01
  • 2010-09-06
  • 2018-02-22
  • 2016-11-13
  • 2018-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多