2011-11-08 4 views
1

maven2プロジェクトでは、exec-pluginを使用してvbscriptを呼び出すためのテストを手動で実行しています(Windows固有のテストです)。これはJenkinsによって自動化されています。私はこれらのテストの結果をエラー報告インフラストラクチャ(確実に/フェールセーフ)に引きつけ、場合によっては統合後テストフェーズでビルドに失敗する前にテスト失敗の詳細を提供したいと思います。機構)。どういうわけか自分のテスト結果ファイルを作成できますか?フォーマットに関する詳細はありますか?より良い方法がありますか?mavenのエラー報告インフラストラクチャに簡単にフックするにはどうすればいいですか?

明確化、私は次の事の後だ:ジェンキンスは、テストの数を手動で実行表示されますので、インフラストラクチャにテストを追加する

  1. 能力。
  2. 特定のテストを合格または不合格としてマークし、ジェンキンの下でビルドを「不安定」とマークすることができます。
  3. テストが失敗したときにビルドが直ちに失敗しないようにする(これにより、アプリケーションが実行されたままになります)。私はそれを「不安定」としてマークするか、「検証」フェーズで失敗したものとしてマークします。

答えて

0

最良の方法は、組み込みのロギングメカニズムを活用できるカスタムmojoでテストをカプセル化することです。次に、javasランタイムexecを使用してvbを実行し、結果を収集し、ログに出力することができます。おそらくこのような何か:

/** 
* Goal which generates. 
* 
* @goal vbtest 
* 
* @phase test 
*/ 
public class VbTestMojo extends AbstractMojo { 
    /** 
    * @parameter expression="${project}" 
    */ 
    private MavenProject project; 

    /** 
    * The directory for exploded something or other. 
    * 
    * @parameter default-value="${vbtest.scriptFile}" 
    * @required 
    * @readonly 
    */ 
    private String vbScriptFile; 


    public void execute() throws MojoExecutionException { 
     getLog().info("Running VB Test " + vbScriptFile.getName()); 

     // execute your vb script here and log whatever... 
    } 
} 

は、独自のプロジェクトでこれを入れて、その後、thuslyあなたのポンポンに含める:

... 
    <plugin> 
    <groupId>mygroup</groupId> 
    <artifactId>myartifact-plugin</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <executions> 
     <execution> 
     <id>test-vb</id> 
     <phase>test</phase> 
     <goals> 
      <goal>vbtest</goal> 
     </goals> 
     <configuration> 
      <scriptFile>${project.basedir}/vbtests/vbtest.vb</scriptFile> 
     </configuration> 
     </execution> 
... 

これは明らかに完全なソリューションではありませんが、あなたに良い出発点を与えることができます。

+0

私は結果をログに記録したくありません。私はすでにそれを行うことができます。私はどのようにしてビルドを不安定にするのか(私はvbscriptからエラーを返すことでビルドに失敗すると思います) – Jared

+0

@Jaredは、そのテストの失敗のためにビルドを失敗させたい場合は、その部分を逃してしまいます。_org.apache.maven.plugin.MojoFailureException予期しない問題(コンパイルエラーなど)が発生した場合。この例外をスローすると、「BUILD FAILURE」メッセージが表示されます。 – Lucas

関連する問題