2011-01-11 20 views
0

Hudsonに詳細なテスト結果を与えるように強制する方法はありますか?私は2つの弦を比較していて、どこが違うかを知りたい。 これを行う方法はありますか? ありがとうございます。詳細Hudsonテストレポート

+2

ハドソンは、基礎となるビルドが何であるかのとらわれないだけで継続的インテグレーションツールです。あなたのビルドを実行し、テストケースを実行するためにMavenまたはAntの下で使用していませんか?それはあなたが見なければならない場所です。 – Damien

+0

ダミアンが言ったように。また、プログラムを構築するために何を使用していますか?テストするために何を使用していますか? – Sagar

+0

私はMavenとJUnitを使用しています。 – Jarek

答えて

0

ハドソンが詳細情報を提供してくれることを期待してはいけません。ちょうどjunitによって生成されたテストメッセージが表示されます。

これらの2つの文字列の間に等しい文字が存在しない場合、期待される文字列と実際の文字列を表示できます。例えば

protected void compareFiles(File newFile, String referenceLocation, boolean lineNumberMatters) { 
    BufferedReader reader = null; 
    BufferedReader referenceReader = null; 
    List<String> expectedLines = new ArrayList<String>(); 
    try { 
     referenceReader = new BufferedReader(new InputStreamReader(FileLocator.openStream(Activator.getDefault().getBundle(), new Path("data/regression/" + referenceLocation), false))); //$NON-NLS-1$ 
     expectedLines = getLinesFromReader(referenceReader); 
    } catch (Exception e) { 
     assertFalse("Exception occured during reading reference data: " + e, true); //$NON-NLS-1$ 
    } 
    List<String>foundLines = new ArrayList<String>(); 
    try { 
     reader = new BufferedReader(new FileReader(newFile)); 
     foundLines = getLinesFromReader(reader); 
    } catch (Exception e) { 
     assertFalse("Exception occured during reading file: " + e, true); //$NON-NLS-1$ 
    } 
    boolean throwException = expectedLines.size() != foundLines.size(); 
    if (throwException) { 
     StringBuffer buffer = new StringBuffer("\n" + newFile.toString()); //$NON-NLS-1$ 
     for (String line: foundLines) 
      buffer.append(line + "\n"); //$NON-NLS-1$ 
     assertEquals("The number of lines in the reference(" + referenceLocation + ") and new output(" + newFile.getAbsolutePath()+ ") did not match!" + buffer, expectedLines.size(), foundLines.size()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ 
    } 
    if (!lineNumberMatters) { 
     Collections.sort(expectedLines); 
     Collections.sort(foundLines); 
    } 
    /** Either the line matches character by character or it matches regex-wise, in that order */ 
    for (int i=0;i<expectedLines.size(); i++) 
     assertTrue("Found errors in file (" + newFile + ")! " + foundLines.get(i) + " vs. " + expectedLines.get(i), foundLines.get(i).equals(expectedLines.get(i)) || foundLines.get(i).matches(expectedLines.get(i))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ 
} 
0

ハドソンは直接のJUnitをサポートしています。ジョブ設定ページの最後には、「JUnitテスト結果レポートを公開する」オプションが必要です。

私はあまりJUnit自体に慣れていませんが、生成する(または生成する能力がある)と推測し、結果をxmlファイルに入れます。テキストボックスにxmlファイルのパスを(ワークスペースを基準にして)配置するだけです。

これを実行してビルドを作成すると、プロジェクトページの詳細レポートが表示されます。各テストの結果をクリックすることができます。

alt text