0

テストケース名/IDを保存しているExcelファイルがあります。

ここで、テスト ケース名 (Excel 内) が「test」で始まる場合、Junit / TestNG test のいずれかを実行したいと思います。私のテスト ケース名 (Excel 内) が「check」で始まっている場合、別の Junit / TestNG テストを実行したいと思います。同様に、Excel の ID に基づいてさまざまなテストを実行したいと考えています。

どうすればこれを行うことができますか?誰かが私にとって非常に役立つ例を投稿してください。

ありがとう、マイク

4

3 に答える 3

4

あなたがやりたいことは、Excelシートに基づいてテストを動的に構築することだと思います。これは、testng をプログラムで実行する方法です。

Excel から読み取り、XmlClass を作成し、メソッドのテスト名に基づいて xmlclass のメソッドを設定する必要があります。xmlclass を XmlSuite に追加します。したがって、基本的には、Excel のテストケース名に基づいて実行時に動的スイートを生成しています。

于 2013-01-09T16:17:18.070 に答える
1

testNGを使用して同様のことを行いました。私の要件は、ユーザーがテストケースのリストから選択するテストケースを実行することでした。ユーザーがリストからテストケースを選択できるように、Excelシートの代わりにJenkinsを使用していました。ロジックもあなたのために働くかもしれません。はい、これ:

実行するメソッドを特定するのではなく、すべてのテストケースに一意のテストグループ名を付けました。このグループ名は、Excelシートにあるものと同じである必要があります。必要なロジックは、入力グループ名でテストを実行するためのtestng.xmlを作成することだけです。これは、testNGオブジェクトを使用するか、dom4jなどを使用してtesNG.xmlを作成することで実行できます。

于 2013-01-09T16:58:00.397 に答える
1

あなたが探しているのは、リフレクションと呼ばれるものです。あなたのxmlには、実行したいクラスとメソッド名があります。Java では、リフレクションを使用してクラスを取得し、メソッドを繰り返し処理して、必要なものが一致するかどうかを判断します。通常、リフレクションは効率的な方法ではありませんが、テスト目的であれば、必要なことを行うことができます。

例は

for(Method method : this.getClass().getMethods()){
{
    if(method.getName().equals(name)){
         method.invoke();
    }
}

詳細については、 http://docs.oracle.com/javase/tutorial/reflect/class/index.htmlを参照してください。

于 2013-01-09T15:25:47.720 に答える