2011-01-18 30 views
2

私は親プロジェクトと少数の子プロジェクトからなる春のプロジェクトを持っています。 ビルドはmavenベースであり、継続的な統合サーバーはhudsonです。ユニットテスト - アドバイスが必要

私は単体テストの実行方法を選択する必要があります。 現在、いくつかの良いと、ごくわずかなゴミジュニ​​ットテストがあります。 私は時間がかかるので、私は子供のプロジェクトのテストパッケージを混乱させないことを前提に、私はすべてのジュニットと最後の重要なことに慣れていない:私は怠け者だ。

私の質問は以下のとおりです。

  1. iは、Mavenの-確実な-プラグインを使用してテストパッケージに重いクリーンアップを行う必要がありますか?
  2. hudson(ビルド中のプロジェクトのpom.xmlではなく)に特定のユニットテストを実行して他のユニットを無視する方法はありますか?
  3. 他のビルド(ant?)を作成し、hudsonで単体テストを実行するために使用する必要がありますか?
  4. 私は気づいていない市場では、他のオプションの良いオプションがありますか?

いずれかのアドバイスをいただければ幸いです。

aviad

答えて

4
  1. 私はのmaven-確実な-プラグイン を使用してテスト パッケージに重いクリーンアップを行う必要がありますか?
  2. これは、hudsonに伝える方法です( pomにはありません)。xmlのプロジェクトが構築されています) 特定の単体テストを実行し、 は他を無視しますか?

あなただけのシングルモジュールプロジェクトでユニットテストを実行したい場合は、compiletest-compile(することができますように含めtestまでのすべてmaven lifecycle phasesを、実行されます

mvn test 

を行うことができますbuilt-in lifecycle bindingsを参照し、surefire:testのゴールは、フェーズtestで実行されます)。今、あなたが実行されているユニットテストを制限したい場合は、あなたがtestパラメータとsurefire:testプラグインの実行を設定することができます。

mvn test -Dtest=Funky*Test 

(これはFunkyで始まるすべてのテストクラスを実行し、Testで終了します)


複数のインクルードと除外が必要な場合は、残念ながらコマンドラインの設定が制限されています。いくつかのXML設定が必要です。私はハドソンのために、専用のプロファイルを使用することをお勧めしたい:回答を

mvn -Phudson test 
+0

ありがとう!それは有益でした(私の評判はまだ<15) – aviad

+0

あなたが大歓迎です投票をしないで申し訳ありません –

+0

私は、コマンドラインステートメントのPとプロファイル名の間に空白が必要です。 – Ralph

3

1)私はMavenの-確実な-プラグインを使用してテストパッケージに重いクリーンアップを行う必要がありますか?

はい

2)は、それが特定のユニットテストを実行し、他の人を無視する)ではない建設中のプロジェクトの中のpom.xml(ハドソンを伝えるためにどのような方法ですか?

JUnitを使用するかどうかわかりません。しかし、バージョン4.7,4.6,4.5の "隠された"機能をチェックすることができます(リリースノートには多くのものがあります)。必要なものが何もない場合は、自分でプログラムすることができます。 (システムプロパティのチェックとテストのスキップ)。

3)私は別のビルド(ant?)を作成して、それをhudsonの単体テストで実行する必要がありますか?

これは、pomでsprecifiyingするのと同じです。しかし、個人的には、AntとMavenを混ぜ合わせることで、あなたができる最も厄介なことの一つです。

4)市場には私が気づいていない他のオプションがありますか?

TestNGをご覧ください。

+0

ありがとう:

<profiles> <profile> <id>hudson</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.6</version> <configuration> <includes> <include>**/TestA.java</include> <include>**/Funky*Test.java</include> <include>**/Test**.java</include> </includes> <excludes> <!-- overrides above include --> <exclude>**/TestButNotMe.java</exclude> </excludes> </configuration> </plugin> </plugins> </build> </profile> </profiles> 

今、あなたは、このようなあなたのハドソンコールMavenをさせることができます。 – aviad

+0

私はtestngを見ました...約束しています。あなたは春とどのくらい簡単に統合できるか考えていますか? (この回答を見つけることができませんでした) – aviad

+0

@aviad JUnit(特に4.x)はSpringに簡単に統合されています。@RunWith(SpringJUnit4ClassRunner.class)と@ContextConfiguration( "context.xml")をテストケースでは、豆をテストケースに挿入することができます。 - それ以上の質問がある場合は、コメントを使わずに新しい質問を作成してください。 - あなたが私の答えが好きなら、自由に投票してください。 – Ralph

関連する問題