0

Jenkins-Slaveを使用してSeleniumGuiテストを実行します。スレーブはWebStartを使用して開始され、Windows7マシンで実行されます。このテストには、PDFファイルのダウンロードが含まれています。PDFファイルの存在と、その中のテキストを検索して正確性を確認する必要があります。問題は、実行中のSeleniumテストで、Firefoxによってダウンロードされたファイルが表示されないことです。実際、プロセスはディレクトリ内のファイルを認識していないようです。

JenkinsやWebStartをまったく使用せずに、IDEから直接、ローカルマシンでテストを実行すると、テストは問題なく実行されます。

私はすでに次のことを考えました:

  • 間違ったディレクトリをチェックしていますか?file.getAbsolutePath()いいえ、 Windowsエクスプローラーにコピーしてファイルを表示できます。また、私は正しいマシンを使用していると確信しています。
  • タイミングの問題ですか?たとえば、ファイルのダウンロードが完了していませんか?いいえ、WebDriverWaitを使用して、ファイルが見つかるまで30秒待ちますが、PDFの作成とダウンロードには実際には1秒ほどかかります。

    WebDriverWait wait = new WebDriverWait(driver, 30, 1000);
       wait.until(new Predicate<WebDriver>(){
         public boolean apply(WebDriver driver){
           try{
             log.info("file: " + pdfFile.getAbsolutePath() + ", exists: " + pdfFile.exists() + ", size: " + pdfFile.length());
             // test files content ...
           }
           catch (IOException e){
             return false;
           }
         }
       });
    

誰かが何が間違っている可能性があるか考えていますか?ワイルドな推測は大歓迎です...

更新 jenkins.jnlpファイルを確認しましたが、「all-permissons」が含まれているため、ファイルシステムにアクセスできるはずです。

<security>
   <all-permissions/>
</security>

UPDATE 2 それを明確にするために:私はJenkinsを使用してSeleniumテストを実行します。SeleniumはFirefoxをリモートコントロールし、その間にPDFファイルがダウンロードされます。問題は、Javaプロセスです。たとえば、私のテストクラスはファイルを見つけることができません。

4

2 に答える 2

0

Windows 7でJenkinsをどのように実行していますか?サービスとしてインストールしましたか?この一般的な問題のリストを確認しましたか?https://wiki.jenkins-ci.org/display/JENKINS/My+software+builds+on+my+computer+but+not+on+Jenkins

于 2012-06-26T18:19:24.313 に答える
0

相対パスの変更:

new File("downloads/");

「getAbsoluteFile」を呼び出すか、「C:...」を使用して絶対値に設定します。

new File("downloads/").getAbsoluteFile();

問題を修正します(しかし、理由はわかりません)。これは、Jenkinsがuser.idを設定し、java.io.File実装のバグが原因で、問題が発生する可能性があるためです。この他のSOの質問このJavaバグレポートを参照してください。

于 2012-07-09T10:12:14.217 に答える