複数のブラウザーに対して実行されるプロジェクトのセレン テスト用に、Jenkins マルチ構成ジョブをセットアップしようとしています。さまざまなオプションを確認しましたが、マルチ構成ジョブは適切に機能しているように見えますが、maven にパラメーターを正しく渡すことができません。
主に browserName と appDomain、そしてテストを実行するための Profile など、maven に渡す必要があるいくつかのパラメーターがあります。ジョブを構成するには、次のようにします。
- コードのチェックアウト元となる SVN リポジトリを定義します。
- 値 FIREFOX、CHROME、IE を使用して、browserName をユーザー定義軸として設定します。
「トップレベルのMavenターゲットを呼び出す」タイプのビルドステップを作成すると、ここで問題が発生します。この部分の構成は他の職種とは異なり、通常はGoals and Optionsと呼ばれるすべてを入れる欄がありますが、この場合は別の分野に分かれています。そのため、プロパティとプロファイルを正確にどこに置くかわかりません。
a) 論理的に言えば、画像のように、目標を [目標] フィールドに、パラメーターとオプションを [プロパティ] フィールドに入力します。
この場合、プロファイルが実行されないため、ジョブはテストを実行せずに正常に実行されます。
b) プロファイルだけを [目標] フィールドに入力すると、ログの maven 呼び出しは次のようになります。
/opt/apache-maven-2.2.1/bin/mvn -DbrowserName=CHROME "-D-Dappdomain=0 -Dtestenv=test -Drc=true -DsuiteXmlFile=testOne.xml -U -Dapp.instance.key=jenkins -Denv=default" clean verify -Pwebtests
例外は次のとおりです。
[INFO] [enforcer:enforce {execution: enforce-property}]
[WARNING] Rule 0: org.apache.maven.plugins.enforcer.RequireProperty failed with message:
You must pass the appdomain as parameter! Example: -Dappdomain=20
[WARNING] Rule 1: org.apache.maven.plugins.enforcer.RequireProperty failed with message:
You must pass the test environment as parameter! Example: -Dtestenv=beta
プロパティを取得していない
c) 最後に、すべてをゴール フィールドに入力すると、次の例外が発生します。
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] One or more required plugin parameters are invalid/missing for 'property:merge'
[0] Inside the definition for plugin 'property-maven-plugin' specify the following:
<configuration>
...
<environment>VALUE</environment>
</configuration>
-OR-
on the command line, specify: '-Denv=VALUE'
通常のパラメーター化されたジョブで試してみましたが、完全に機能します...
Jenkins のバージョンは 1454 で、Maven は 2.2.1 です。