TFS2018自动测试构建文件c:\ chromedriver.exe不存在

时间:2018-03-22 12:36:20

标签: selenium tfs tfsbuild tfs2018

我为我的测试自动化套件设置了TFS构建。它有3个任务 - Nuget还原,解决方案构建和VSTest任务。在我的测试中,我创建了一个新的ChromeDriver实例,并在我的解决方案中安装了Chrome Webdriver Nuget。这在当地工作正常。但是,TFS构建会引发错误:

  

OpenQA.Selenium.DriverServiceNotFoundException:该文件   c:\ chromedriver.exe不存在

我无法确定为什么Nuget还原不能恢复chrome webdriver包。作业中的所有其他软件包似乎都在恢复/正常工作,因为它已经进入我的SpecFlow功能文件的第一步,并且只有在我尝试启动Chrome实例时才会失败。我错过了什么吗?提前谢谢,迈克

1 个答案:

答案 0 :(得分:1)

根据您收到的错误消息,我推断出以下内容:

  • 在您的本地计算机上,// v <--- observe the return by reference Iterator & operator++ () { // something that modify the Iterator object // return the object itself as reference return *this; } // no reference here: return a copy Iterator operator++ (int) { // copy of the object **before** the increment // (but you have also to develop a copy constructor) Iterator copy { *this }; // pre-increment of the object ++(*this); // return of the before the increment copy return copy; } 驱动程序根文件夹中包含chromedriver.exe二进制文件(我不认为这是一个好主意)。
  • 您要么将C:二进制位置添加到chromedriver.exe环境变量,要么在测试中硬编码其位置

首先,确保测试中的位置没有硬编码。

你能做什么:

  • 在代理计算机上手动复制并将PATH二进制位置添加到chromedriver.exe env变量(之后可能需要重新启动)。如果您有多台机器,不建议使用。升级可能会成为一项痛苦的任务,具体取决于代理的数量。
  • 继续使用Nuget。您最终可以检查PATHbin/Debug文件夹,以确保在恢复和构建后确定该文件夹。

来自Chromedriver Nuget包装说明:

  

为Selenium安装Chrome驱动程序(Win32,macOS和Linux64)   WebDriver进入您的单元测试项目。         &#34; chromedriver文件(.exe)&#34;在构建过程中从包文件夹复制到bin文件夹。         NuGet包恢复准备就绪,无需提交&#34; chromedriver(.exe)&#34;二进制到源代码控制库。

您还可以查看Microsoft documentation page中的信息。