8

.NETテスト用にNAnt/NUnitを使用して.NET Webアプリケーションを継続的に統合するためにJenkinsを使用します。 Jenkinsは、自動テストとともに多くのビルドを実行する9つのスレーブ(すべてWindows Server 2003)で構成されています。Jenkinsのjs-test-driverタスクにリモートブラウザを使用するにはどうすればよいですか?

私たちはJavaScriptユニットテストを実行するためのjs-test-driverをセットアップしようとしています。そして、以下のNAntタスクは開発者用ワークステーション上でローカルにうまく機能しています。 Internet Explorerは、すべてのWebアプリケーションの唯一のターゲットブラウザであるため、テストしたい唯一のブラウザです。

我々は、おそらくので、ジェンキンス上の同じタスクの問題に実行されている
<target name="jsTests" > 
    <echo message="Running JavaScript tests..." /> 
    <exec program="java.exe"> 
     <arg line="-jar '${jstestdriver.dir}\JsTestDriver.jar'" /> 
     <arg line="--config '${ui.webtests.dir}\JsTestDriver.conf'" /> 
     <arg line="--port 9876"/> 
     <arg line="--browser 'C:\program files\internet explorer\iexplore.exe'"/> 
     <arg line="--verbose"/> 
     <arg line="--reset"/> 
     <arg line="--tests all"/> 
     <arg line="--testOutput '${results.jstestdriver.dir}'"/> 
    </exec> 
</target> 

:それは、サーバーの

  1. とブラウザのインス​​トールに関するセキュリティ上の制限がある
  2. サービスアカウントとして我々が実行されています サーバー

GettingStartedページのjs-test-driver wikiの我々はブラウザを実行できると言いますJS-テスト・ドライバー・サーバが実行されているよりも、別のマシン上のS:

あなたはテストサーバー とキャプチャ少なくとも1つのスレーブブラウザを起動する必要があり、あなたのテストのいずれかを実行する前に。サーバーは、テストランナーがあるマシンに を置く必要はなく、ブラウザー 自身も別のマシンに置くことができます

  1. これは誰でもJenkins/Windowsセットアップで行っていますか?
  2. スケーラブルなセットアップで他の方法がありますか? js-test-driver?

答えて

2

私は100%のWindowsセットアップで似たようなことをしましたが、何も問題はありません。

私の場合は、IE7、IE8、IE9、Chrome、Safari、Firefox 3.6、最新バージョンなど、より多くのブラウザでテストしなければならなかったので、すべてのブラウザで仮想マシンをインストールしました必要があり、jstestdriverは、サーバーモードで実行されていると、別のマシン:

java -Xmx256m -jar JsTestDriver-1.3.4-a.jar --port 4224 

ブラウザとのすべての仮想マシンは、常にそのサーバを指し、それらのインスタンスを持っています(http:// [JSTD-サーバIP]: 4224/capture)

これらのマシンでは、スケジュールされたタスクを作成しています。これは、毎朝、ブラウザのインス​​タンスをリセットします。これは、いくつかのブラウザsp IE7は3日以上稼動していると機能しなくなる傾向があります。

taskkill /f /IM iexplore.exe 
iexplore.exe http://[jstd-server-ip]:4224/capture 

これらのマシンとjstestdriverサーバーは常に稼動しています。あなたのケースで可能かどうかは分かりません。

次に、アプリケーション上で、私はテストを起動するためのMavenプラグインを使用しています。私の場合は、より良い動作するhttp://code.google.com/p/jstd-maven-plugin/wiki/GettingStartedていますが、Mavenを使用していない場合、私はNAntの中でこのようなものになるshoud推測:

<target name="jsTests" > 
    <echo message="Running JavaScript tests..." /> 
    <exec program="java.exe"> 
     <arg line="-jar '${jstestdriver.dir}\JsTestDriver.jar'" /> 
     <arg line="--config '${ui.webtests.dir}\JsTestDriver.conf'" /> 
     <arg line="--browser 'C:\program files\internet explorer\iexplore.exe'"/> 
     <arg line="--verbose"/> 
     <arg line="--reset"/> 
     <arg line="--tests all"/> 
     <arg line="--testOutput '${results.jstestdriver.dir}'"/> 
    </exec> 
</target> 

そしてでJsTestDriver.conf上に次の行を追加します。

server: http://[jstd-server-ip]:4224 

これはジェンキンによって実行jstestdriverのごクライアントインスタンスに指示しますサーバーとして、http:// [jstd-server-ip]:4224を使用してください。

希望すると、これが役立ちます。

+0

恐縮です、ありがとうございます。私はこれを試して更新します... –

+0

魅力的なように動作します... NAntスクリプトでもう少し小さな変更を加えて、ブラウザの引数もそこから削除します: ' ' –

関連する問題