2009-12-07 10 views
10

これまでのところ、答えが見つからないことに驚いていました。私が何か基本的なものを見逃すと、私はそれを知ってうれしくなるでしょう。JUnit4にアップグレードし、従来のJUnit 3テストとテストスイートを一緒に実行して維持する

Java 6(1.4以降)にアップグレードされた大きなレガシーコードベースがあります。多数のJUnit 3テストがコード内に存在し、EclipseのJUnit 4デフォルトランナーで正常に動作するテストスイートに編成されています。

ここでは、純粋なJUnit 4テスト(注釈、TestCaseなしなど)である新しいテストを追加します。古いJUnit 3テストスイートと新しいJUnit 4テストを一緒に実行する方法は何でしょうか?

+0

私はAntTaskでこれを行うと答えていますが、Eclipseだけを意味すると思います。もしそうなら、日食にタグを付けてください。 – shoover

+1

@shoover - いいえ、Eclipseだけを意味するわけではありません。私はJavaのみでテストを実行する汎用ソリューションを探しています。 – topchef

答えて

12

実行コンフィギュレーションで 'JUnit4'テストランナーを使用してください。

JUnit4バイナリには、同じテストスイート内にJUnit3とJUnit4の両方のスタイルクラスを持つことができる下位互換性レイヤがあります。

コマンドラインビルドでは、JUnit3の代わりにJUnit4 jarを使用します。

これは、今やっているマイグレーションを容易にするために具体的に行われました。

また、私のプロジェクトでうまく動作します。

+0

アレックス、ありがとう、私はもっと具体的な解決策を探していた。私はそれを答えとして加えて、それに信用を与えるでしょう。 – topchef

+0

この問題を確認できますか?私はJunit4とJunit3を 'configure'する方法がわかりません。 (ここ)[http://stackoverflow.com/q/26848673/668650]が問題です。 –

9

@RunWith(Suite.class)は私のJUnit 4とJUnit両方を一緒に3つのテストとテストケース結合する機会与えます:

@RunWith(Suite.class) 
@Suite.SuiteClasses({ 
    ExampleOfJunit3TestSuite.class, 
    ExampleOfJUnit3TestCase.class, 
    ExampleOfJUnit4TestSuite.class, 
    ExampleOfJUnit4TestCase.class}) 
public class BothJUnit4and3TestSuite { 
} 

BothJUnit4and3TestSuiteは、に記載されているすべてのテストおよびテストスイートを実行します@ Suite.SuiteClasses

関連する問題