11

私の Hudson プロジェクトは、ダウンストリームのテスト結果を適切に集計していないようで、どこかで構成手順を見逃していないかどうか疑問に思っています。Foo と Foo-Tests という 2 つのプロジェクトがあり、どちらもフリースタイルの仕事です。

プロジェクトFooでは、次の構成があります。

  • 「ダウンストリームのテスト結果を集計する」にチェックを入れました。
  • 前のオプションで「すべてのダウンストリーム テストを自動的に集計する」をオンにしました。
  • 「他のプロジェクトをビルドする」にチェックを入れ、ビルドする「Foo-Tests」を指定しました。

プロジェクト Foo-Tests では、次の構成があります。

  • 「JUnit テスト結果レポートを公開する」にチェックを入れ、JUnit レポートの XML ファイルを指定しました。

Foo がビルドされると、正常にビルドされ、Foo-Tests ビルドが正しくトリガーされます。Foo-Tests ビルドが成功し、JUnit レポートが正しく発行されます。ただし、Foo で集計されたテスト結果を探すと、ビルドの「最新のテスト結果 (テストなし)」リンクがあり、404 に送られます。

問題を解決しない私が試したことは次のとおりです。

  • パラメーターなしで「JUnit テスト結果レポートを公開する」ように Foo に指示します (プロジェクト Foo にはテストはなく、Foo-Tests のみです)。プロジェクト内で処理するためのテスト ファイルがなかったため、これによりエラーが発生しました。
  • パラメータなしで「公開されたすべてのアーティファクトをフィンガープリントする」ようにFoo-Testsに指示します(ハドソンがJUnitレポートを舞台裏でアーティファクトとして扱ったのではないかと思っていました)。公開するアーティファクトを明示的に定義していなかったため、これによりエラーが発生しました。

Hudson 1.266 を使用しています。

編集: Hudson Users メーリング リストで 2 つの質問を見つけましたが、回答がなく、おそらくこれを解決するのに役立ちます:

4

4 に答える 4

5

ハドソン版を使用しています。1.324 で、同様の問題がありました。フィンガープリンティングを有効にしようとしたがうまくいかなかったとおっしゃいましたが、私たちにはうまくいきました。ここにある指示に従いました。

http://shotgunsandpenguins.blogspot.com/2009/07/how-to-aggregate-downstream-test.html

于 2009-09-24T21:45:50.397 に答える
3

Hudson 1.266 で問題を再現できました。これは Hudson のエラーであり、後のビルド (1.287 より前) で修正されているため、Hudson をアップグレードするか、この 2 クリックの回避策を使用してください。[プロジェクト] ページから、最初に [最新のビルド] に移動し、次に [集計されたテスト結果] に移動します。

問題は、Foo のプロジェクト ページに、http://localhost:8080/hudson-1.266/job/Foo/lastBuild/testReport/のような URL を持つ最新のテスト結果のリンクしか表示されないことです。Foo には独自のテストがないため、このリンクには参照する JUnit XML ファイルがなく、言及したエラーが返されます。これは、テストがない場合に latestBuild/testReport/ から latestBuild/ にリダイレクトすることで、1.266 から 1.287 の間のどこかで修正されました。1.266 での代替手段は、[プロジェクト] ページで [最新のテスト結果] をクリックする代わりに、少し下にスクロールして [パーマリンク] の下の [最新のビルド] をクリックすることです。これにより latestBuild/ URL に移動し、そこからhttp://localhost:8080/hudson-1.266/job/Foo/lastBuild/aggregatedTestReport/のような URL を持つ Aggregated Test Result をクリックできます。. このページでは、ダウンストリーム プロジェクトからのすべてのテスト結果が [ドリル ダウン] セクションに表示されます。

残念ながら、1.287 でも、ドリル ダウン リンクにはまだ問題があります。上記のように Foo から Foo-Tests にドリルダウンすると、http://localhost:8080/hudson-1.287job/Foo-Tests/ のような不正な URL に移動します。その URL を手動で変更して、hudson コンテキストとそれに続くジョブ パスの間に / を挿入し、http://localhost:8080/ hudson-1.287/job /Foo-Tests/ のようにする必要があります。その後、ダウンストリームのテスト結果を実際に見ることができます。

ハドソンのソースを調べてエラーを見つける機会はありませんでしたが、これについてはすでに問題が未解決です。その発行は 1574で、ほぼ 1 年間開かれています。

余談ですが、私は Hudson for CI が大好きですが、そのインターフェイスは思ったほどスムーズではありません。ExtJS での UI のリワークを楽しみにしています。多分それは彼らがすべての時間を費やしているものです.

于 2009-02-28T18:24:42.377 に答える
2

2 つのプロジェクト Foo と Foo-Test は、同じストリーム上にあることを認識している必要があるため、共通ファイルのフィンガープリント (したがってアーカイブ) が必要です。

Foo と Foo-Test の実行中に変更されず、両方の実行時に変更されたファイルを選択する必要がありました。私にとっては、私のバージョンの Foo と Foo-Test のカスタム/共通ワークスペースで Foo によって生成された無関係な一時的な .jar でした。

つまり、Foo と Foo-Test の両方で同じファイルをフィンガープリントする必要がありました。

その後、少なくともhudson 1.330では、リンクの集約、ドリルダウンなどは機能します。

于 2009-11-03T15:42:47.743 に答える