2016-06-15 10 views
1

私はSeleniumを使用して単体テストを作成しました。ユニットテストクラスには、いくつかの(実用的な)ユニットテストがあります。コンストラクタは以下のようになります。私はテストExporer すべてのものを使用して、そのテストクラス内のユニットテストのいずれかを実行すると罰金の作品注文したテストを使用している場合、ChromeDriverが見つかりません

private IWebDriver _chrome; 
public SeleniumTest() 
    { 
    _chrome = new ChromeDriver(); 
    } 

。そのプロジェクトへのNuGetを使用して

OpenQA.Selenium.DriverServiceNotFoundException was unhandled by user code 
    HResult=-2146233088 
    Message=The chromedriver.exe file does not exist in the current directory or in a directory on the PATH environment variable. The driver can be downloaded at http://chromedriver.storage.googleapis.com/index.html. 
    Source=WebDriver 
    StackTrace: 
     bei OpenQA.Selenium.DriverService.FindDriverServiceExecutable(String executableName, Uri downloadUrl) 
     bei OpenQA.Selenium.Chrome.ChromeDriverService.CreateDefaultService() 
     bei OpenQA.Selenium.Chrome.ChromeDriver..ctor(ChromeOptions options) 
     bei OpenQA.Selenium.Chrome.ChromeDriver..ctor() 
     bei MyTest.SeleniumTest..ctor() in C:\dev\myTest\SeleniumTest.cs:Zeile 27. 

私はセレン(とChrome)を加え

しかし、私はChromeDriverを開始しようとしたとき、私はエラーを受け取り、同じユニットテストが含まれている注文したテストを作成するときに

更新:chromedriver.exeはプロジェクトのBINディレクトリ内にあります

答えて

2

問題は、順序付けられたテストが独自のディレクトリを作成し、そこからコードを実行することです。彼らは、次のようになります。

C:\ DEV \て、myApp \ MyTestに\ TestResults \アウト

そして、このディレクトリ内に何chromedriver.exe

がないMachineNameに2016年6月15日\ 15_26_39

私はDeploymentItem - 属性を使ってこれを解決しました。この属性は、クラスのインスタンスを作成する前に、binディレクトリからOut-directoryにファイルをコピーします。だから、クラス属性はこのように見えた:

[TestClass] 
[DeploymentItem("chromedriver.exe")] 

orderedTest私はそれを知っているエラー

+0

これがうまくいきました。また、他のパッケージにも使用できます。たとえば、AutoItを使用してWindowsベースのログイン(標準の.htaccessのみを使用しないWebページのログイン)を処理し、DeploymentItemとして「AutoItX3.dll」を追加することがそのトリックです。私は、ソリューションをきれいにして再構築する必要があります。 –

0

chromedriver実行ファイルが見つかりません。実行ファイルに記載されているように、PATH環境変数にchromedriver.exeのパスを追加する必要があります。

chromedriver.exeファイルが現在のディレクトリまたはPATH環境変数のディレクトリに存在しません。ドライバはhttp://chromedriver.storage.googleapis.com/index.htmlでダウンロードできます。

+0

せずに実行されることをした後。しかし、同じプロジェクトでユニットテストを直接実行すると、なぜこれは起こりませんか? –

+0

@OleAlbers私はそれについての答えを持っているVisual Studioについてはほとんど知りません。 – RemcoW

関連する問題