2

Windows XP のスケジュールされたタスクとして、コンピューターで JUnit ナイトリー ビルドを実行しています。私のアプリケーションは Jaxb を使用しているため、一部のテストではシステム クラスパスを使用して xsd スキーマを参照する必要があります。コンピューターを使用していないときにナイトリー ビルドを実行すると、次のようなエラーが表示されます。

java.lang.Exception: クラスパスからスキーマ mySchema.xsd をロードできません

ただし、ビルドを手動で実行すると、そのようなエラーは発生しません。スキーマの場所の環境変数は、ユーザー変数ではなくシステム変数であるため、このエラーの原因がわかりません。このエラーの原因は何ですか?

編集:ハドソンのような代替は、私が求めているものではありません。上記のテクノロジ (スケジュールされたタスクとして実行されるバッチ ファイル) のソリューションを求めています。

4

3 に答える 3

1

hudsonは別の継続的インテグレーションエンジンであり、セットアップが非常に簡単です。

ハドソンは次の機能を提供します

  • 簡単なインストール:java -jar hudson.warを使用するか、サーブレットコンテナにデプロイします。追加のインストールもデータベースもありません。
  • 簡単な構成:Hudsonは、広範なオンザフライエラーチェックとインラインヘルプを使用して、使いやすいWebGUIから完全に構成できます。XMLを手動で微調整する必要はもうありませんが、必要に応じて微調整することもできます。
  • 変更セットのサポート:Hudsonは、CVS / Subversion/Mercurialからビルドに加えられた変更のリストを生成できます。これもかなり効率的な方法で行われ、リポジトリの負荷を軽減します。
  • パーマリンク:Hudsonは、他の場所から簡単にリンクできるように、いくつかのパーマリンクリンク「最新ビルド」/「最新成功ビルド」を含む、ほとんどのページのクリーンで読みやすいURLを提供します。
  • RSS / Eメール/IM統合:RSSまたはEメールでビルド結果を監視して、障害に関するリアルタイムの通知を取得します。
  • 事後タグ付け:ビルドが完了した後も長い間ビルドにタグを付けることができますJUnit / TestNGテストレポート:JUnitテストレポートは、集計され、要約され、壊れ始めたときなどの履歴情報とともに表示されます。履歴トレンドがプロットされますグラフに。
  • 分散ビルド:Hudsonは、ビルド/テストの負荷を複数のコンピューターに分散できます。これにより、開発者の机の下にあるアイドル状態のワークステーションを最大限に活用できます。ファイルのフィンガープリント:Hudsonは、どのビルドがどのjarを生成したか、どのビルドがどのバージョンのjarを使用しているかなどを追跡できます。これは、ハドソンの外部で作成されたjarでも機能し、依存関係を追跡するプロジェクトに最適です。
  • プラグインのサポート:Hudsonは、サードパーティのプラグインを介して拡張できます。チームが使用するHudsonサポートツール/プロセスを作成するためのプラグインを作成できます。
于 2009-04-16T16:13:42.500 に答える
1

ハドソンまたはクルーズコントロールをチェックする必要があります。どちらもセットアップが簡単で、より多くのレポート、制御、および使いやすさの向上により、このタイプの問題を処理します。ビルドの問題を調査するために費やす時間が少なくなります。

于 2009-04-16T15:16:00.980 に答える
1

私の疑いは、作業ディレクトリが(特にクラスパス変数ではなく)期待したものとは異なるということです。このスケジュールされたタスクをユーザーとして実行しているか、システム タスクとして実行しているかは、すぐにはわかりません。どちらの場合でも、タスクが実行されている場所を正確に見つける価値があります。

そうは言っても、以前は Windows XP のスケジュールされたタスクを使用して自動ビルドをセットアップしていましたが (まさに今行っているように)、現在はCruiseControlを使用しています。抽象的には、これはあなたがしていること (ビルドを定期的に実行すること) と大差ありませんが、柔軟性が向上します。ここで、CruiseControl の最も価値のある機能は、変更がコミットされたことを検出し、その時点でのみビルドを実行することです。現在、コミットから 10 分以内に、壊れたビルド、壊れた単体テストなどを見つけます。

于 2009-04-16T15:26:32.020 に答える