2017-10-02 22 views
0

私は以下を実行する必要があります:異なるパラメータで同じJunitテストを複数回実行する

私は基本的に数値計算に基づいているJunitテストを持っています。私は5つの異なる入力でこのテストを実行しなければなりません。私のここでの入力はあまり複雑なJSONファイルではありません。また、テストでは共通のConfigファイル(JSONファイル)から設定データを読み込みます。つまり、この設定ファイルから設定された入力は5つのテストすべてで同じになります。

一般的な設定ファイルの1つは、whichTestsTobeRun:[1,4,5]です。基本的にここではどのテストを実行するかを設定することができます。また、ログファイルを生成するかどうか(真/偽)など、いくつかの入力パラメータがあります。

私がしたいことは、どのテストを実行するかを知るConfiguration JSONデータのパラメータと、入力パラメータの観点からのその他の有用な情報をまず読み込むことです。その後、私はTest固有のJSONファイルを読んで、これらの入力パラメータ(設定パラメータ+テスト固有のパラメータ)に基づいてテストを実行します。

誰かが私にこれを達成するにはどうすればいいですか?それはパラメータ化されたJunitクラスで実行可能ですか?はいの場合は、そこにパラメータを読み書きできますか?私はそれを通ってこれらすべてをするのは良いイアですか?それ以外のフレームワークを使用することはできますか?

Pl note私は既に同様の記事を読んでいますが、私のようなシナリオがある、つまり設定ファイルから実行するテストを選択するものは見つかりませんでした。

答えて

0

すでにJUnitでparameterized testsを指摘していたので、私はそれらのために行きます。以下のようなものは、あなたが望むものを実行しなければなりません(提供されたリンクからとられたもの)。

@RunWith(Parameterized.class) 
public class FooTest { 
    @Parameters 
    public static Collection<TestData> data() { 
     Collection<TestData> dataCollection = loadFromSource(); 
     return dataCollection ; 
    } 

    private TestData data; // contains input and expected output 

    public FooTest(TestData data) { 
     this.data = data; 
    } 

    @Test 
    public void someTest() { 
     assertEquals(data.someExpectedValue, foo.execute(data.jsonConfig)); 
    } 
} 

免責事項:コンパイルもテストされていません。

関連する問題