10

私の仕事では、約3,000の個別のテストケースで構成されるテストのグループを実行しています。以前は、このテストスイート全体を1台のマシンで実行していましたが、テスト実行全体を完了するのに約24〜72時間かかりました。テストをグループ化して約3台の別々のマシンに分散する独自のシステムを作成しました。テストは優先順位が付けられ、コアテストが最初に実行されてより迅速な結果が得られ、追加のテストが使用可能なマシンがある場合に実行されます。

誰かがテストを複数のマシンに分散して、完全な実行の合計テスト時間を短縮するための良い方法と、それを達成するために使用されたツールを見つけたのではないかと思います。私はいくつかの調査を行い、TestNGはこの方向に進んでいるように見えますが、まだかなり開発中であるようです。

テストを書き直す予定はありませんが、新しいテストを追加したり、新しい製品やアドオンをテストしたりするときに、非常に多くのテストを処理しているという事実に対処できるようにしたいと思います。一方、3.x非常に基本的な方法でもJunitテストを配布するのに役立つツールを見つけることができれば、それを行うために独自のツールを維持する必要がないので、それは役に立ちます。

4

3 に答える 3

3

分散型JUnitで遊んでいる人を見たことがあります。私はそれがどれほど効果的であるかを特に保証することはできませんが、私が見た他のチームはそれが十分に単純であると思っているようでした。お役に立てば幸いです。

于 2008-08-11T21:13:06.813 に答える
1

私たちのビルド担当者はMozillaTinderboxを使用しています。分散テスト用のフックがいくつかあるようです。詳細がわからなくて申し訳ありませんが、少なくともあなたへのポインタをお伝えしたいと思いました。

また、ビルドが中断したときにすぐに、どのチェックインが原因であったかを確認できるのも便利です。

http://www.mozilla.org/tinderbox.html

于 2008-08-11T22:09:16.827 に答える
1

parallel-junitもあります。現在のテストの実行方法に応じて、その利便性は異なる場合があります。アイデアは、複数のコアを持つ単一のシステムでマルチスレッド化することです。簡単に試してみましたが、現在のテストの実行方法とは異なります。

私が使用している継続的インテグレーション エンジンであるHudsonにも、テスト実行を分散するいくつかの方法があります (個別のジョブが結果を 1 つに集約します)。

于 2008-08-13T02:13:56.410 に答える