web-dev-qa-db-ja.com

JSPをロードせずにJenkins(Hudson)からJavaScriptジャスミンテストを実行するにはどうすればよいですか?

豊富なWebクライアントがあります。当社のコントローラーとサービスファサードは、coffeescript(JavaScript)とjqueryで記述されています。以前はJavaでした。

Jenkins/HudsonからJavaScriptジャスミンテストを実行するには、Javaのjunitとhtmlunitを使用して、ジャスミンの仕様を含むテスト指向のjspページをロードします。

Htmlunitを実行しようとすると、おそらく私たちの世界で追跡するのが非常に難しいXMLパーサークラスパスが原因で、getPage()を実行しようとして爆発します。

JenkinsからJavaScriptテストを実行し、JavaScriptテストに合格しなかった場合に失敗を報告できるようにしたいだけです。 JavaScriptテストを実行するために、jspとhtmlunitを使用しています。 JavaScriptテストとjavascriptコードをJavaScriptエンジンにロードして、Jenkinsを開始することはできますか?もしそうなら、どのように?

17
finneycanhelp

Java環境にいるようです。私の jasmine-maven-plugin が適しているかもしれません。

14
Justin Searls

Jasmine Reporters も解決策になります。たとえば、PhantomJSを介してヘッドレスで実行するための手順があり、JUnit XMLを生成できるため、Jenkinsはテスト結果をネイティブに理解し、テストカウント、期間、および失敗を経時的にグラフ化できます。

また、xvfbでよく提供される「xvfb-run」ラッパーはここで非常に役立ちます。そのため、真のヘッドレス環境で「xvfb-runphantomjs.runner.sh ...」を実行できます。

8
mrooney

私は以前、 jasmine-node というnode.jsプラグインを使用してテストを実行することでこの問題を解決しました。

もちろん、このソリューションでは、ジャスミンテストを適切に実行するためにnode.jsといくつかのノードモジュールが必要です。テストを実行する実際のブラウザーはありませんが、基本的にヘッドレスブラウザー、より具体的にはテストが対話できるDOMを作成するjsdomと呼ばれるモジュールを使用してエミュレートされたブラウザーがあります。

JQuery、アンダースコア、そしておそらく他のノードモジュールもあるので、これらもテストできます。自動化されたJenkinsテストと比較すると面倒すぎると思いますが、ブラウザーでテストを実行したい場合は、ブラウザーのエミュレーション全体をスキップすることもできます。

jasmine-nodeはjUnitテストレポートを生成します。これはJenkinsが問題なく解釈できます。

このプロセスを容易にする可能性のあるプラグインがいくつかあることに気づきました jenkins-jasmine-node

6
joonsp

グラントはあなたの友達です

このセットアップを取得しました。これは本当に素晴らしいです。さらに、これにより、ビルドサーバーに、デプロイや単体テストなど、他の素晴らしいことを実行させることができます。

1
aqm

セレンは使えますか?それは実際に実際のブラウザを使用し、可能な限り実際の環境に近づきます。

0
Sarel Botha