2011-08-08 9 views
2

私はJUnitを使用して実行されるSelenium 2テストのセットであるMavenプロジェクトを持っています。言い換えれば、プロジェクト全体の唯一のものはJUnitのテストケースであり、プロジェクトのメインソースファイルであるため、すべてが通常のソースディレクトリ、つまりsrc/main/javaにあります。通常のライフサイクルの外でMavenでSelenium RC junitテストを実行するにはどうすればよいですか?

これらのテストはMavenを使用して実行できますが、これらのテストは実際のユニットテストやプロジェクト内の統合テストではありません(自分自身でテストするのではなく、Webアプリケーションを別の場所でテストしています)。通常のビルドライフサイクル中にそれらを実行しないようにしてください。しかし、私はまだPOMファイル内でテストフェーズ/ゴールを定義できるようにしたいと考えています。

この時点では、確実なプラグインの仕組みを理解していますが、ビルドから実行を切り離す方法はわかりません。私はすべての新しい実行をスタンドアローンにして、mvn run-webtestsのようなものを実行してrun-webtestsフェーズを私のプロジェクトのコンパイルとパッケージの目標とは全く異なるものにすることができます。私は正しい軌道に乗って

1)AMまたは、この問題を考えるためにいくつかのより良い方法があります:

は、だから私は、私は2つの全体的な疑問を持っていると思いますか?

2.)私はこの仕事をするために次に何をする必要がありますか?カスタムフェーズを作成しますか?カスタム目標を作成しますか?

このような一見基本的な質問は申し訳ありませんが、このようなことをしている人の例は見つかりませんでした。

+0

私は分かりません。ライフサイクルの「外」でこれをやろうとしているのはなぜですか? – krosenvold

答えて

2

あなたは正しい方向にいると思います。 Mavenは残念ながら一部の分野で柔軟性に欠けているだけです。通常、材料は収まるように作られていますが、時には本当の痛みになることもあります。私はこの作業を行う最も簡単な方法は、あなたのセレンテストに異なる命名規則を使用して、それらがexcluded fromあなたの "通常の"テストが実行されていることを確認することです。次にdefine a profile確信しているプラ​​グインをincludeに設定して、あなたのセレンがテストし、他のものを除外します。そして、セレンテストを実行するために、あなただけの

mvn test -P selenium-tests 

あなたがmvn run-webtestsを実行することができるようにあなたがそれを設定することができる唯一の方法、

  1. custom lifecycleここで、「実行webtests」を定義している可能性がありますライフサイクルのフェーズ、または
  2. Write a pluginですが、プラグインの実行には常に「:」が含まれているため、mvn myplugin:run-webtestsのようになります。

これらは、pomの単純なプロファイルよりも保守性が高く、メンテナンスが容易です。

関連する問題