2016-11-17 14 views
0

net.thucydidesのプログラム・クリークからサンプル・ソースJUnitクラスのテスト名を変更するためのソリューションが見つかりましたが、機能しません。私はまだ私の究極の目標は、同じMavenの-セレニティのJUnitテストを複数回実行して、パラメータでfeeded独自のテスト名を報告することであるパラメータ化された実行時に@Titleがテストで変更されました

Only 1 Test

(画像リンクに示すように)私のレポートに一つのテスト名を取得します"testCase"というspreadSheetDataから来ています 私の解決策はまったく変わっていないかもしれません。

今後のお役に立てる人はいますか?コードの

私の断片を以下に示します。これを行うには

@RunWith(SerenityParameterizedRunner.class) 
public class STP_Offer_Flow_Test { 
... 

public static Collection<Object[]> spreadsheetData() throws IOException { 
    InputStream spreadsheet = new FileInputStream("src/test/resources/testdata.xlsx"); 
    return new SpreadsheetData(spreadsheet, null).getData(); 

... 

public class AnnotatedDataDrivenScenario 
{ 
    private String name; 
    @Qualifier 
    public String getQualifier() 
    { 
     return name; 
    } 
    public String getName() 
    { 
     return name; 
    } 
    public void setName(String name) 
    { 
     this.name = name; 
    } 
} 


@Test 
public void STP_Offer_Flow_Basic() throws Throwable { 

    log.info(testCase); 
    log.info("applicantID = " + applicantID); 

    AnnotatedDataDrivenScenario testCaseAnnotation = new AnnotatedDataDrivenScenario(); 
    testCaseAnnotation.setName(testCase); 

... 
} 

答えて

0

一つの方法は次のとおりです。これは何

@Test 
@Title("{0}") 
public void myTestMethod(String title){ 
    ... 
} 

@Titletitleを入れています。 titletoString()メソッドを使用するので、toString()メソッドがタイトル(/ String)を構成するものを返す限り、オブジェクトを渡すことができます。

次の例のように、より多くの操作を行うことができます。

テストケースなし:

@Test 
@Title("Test Case no. {1} project {0}.") 
public void myTest(Project project, int testCaseNo){ 
    ... 
} 

タイトルはこのような何かを述べるだろう。 3プロジェクトMyProject。


EDITはすべてのことをスクラッチ、このソリューションが唯一の作品セレニティさんのJUnitのテストメソッドで使用され@Stepない@Title。それらにパラメータを渡す必要はありません。

私は1つの解決策しか見ていません。それはJUnit 5 Dynamic Testです。 Serenity BDDでどのように動くかはまだ分かりません。あなたがこれをテストする機会があれば、私に知らせてください。もし私が経験を得るなら、私はこの答えをもう一度編集します。

+0

Thanx、@JDelorean、これまでにStackExchangeで初めての投稿ですので、いつも学んでいます!あなたの提案について:私はそれを試してみましょう! –

0

JDelorean、あなたの答えはありがとう、私は解決策について考えていたが、私はJUnitテストを呼び出す方法がわからない。 myTestMethodを呼び出すときにタイトルはどこで初期化されますか?

+0

私はこのメッセージを受け取りました:initializationError(nl.ing.dbz.pega.STP_Offer_Flow_Test):メソッドSTP_Offer_Flow_Basicにはパラメータがありません –

+0

ちょっと@Erikあなたのコメントについての通知を受け取りませんでした。常に答えの下でコメントし、別の答えではない。とにかく、私の編集をチェックしてください。 – JDelorean

関連する問題