このセクションの内容:
はじめに
TestNG Executor ツールを使用すると、SOAtest で実行できる他のさまざまな種類のテストと組み合わせて TestNG テストを実行できます。これにより、テスト環境やテスト データのセットアップ、このツールによる単体テストの実行、モバイル テストの実行など、より広範な一連のイベントの一部として TestNG テストを編成する単一のテスト シナリオを設計して実行することができます。
前提条件
- TestNG 6.9.3.10 がサポートされます。
- このツールには SOAtest 9.9.0 以降が必要です
インストール
このツールは、UI またはコマンド ラインからインストールできます。
UI からのインストール
- [Parasoft ] > [設定] を選択し、[システム プロパティ] をクリックします。
- [JAR の追加] をクリックし、testngexecutor.jar ファイルを選択します。
- [適用] をクリックします。
- SOAtest/Virtualize を再起動します。
コマンドラインからのインストール
settings.properties ファイルの system.properties.classpath
プロパティに testngexecutor.jar ファイルを追加します。例:
system.properties.classpath=<PATH_TO_JAR>/testngexecutor.jar
使用方法
ウィザードを使用して、スタンドアロン ツールとして TestNG Executor を追加できます。
テストのクラス フォルダーまたは jar ファイルに、実行する TestNG が含まれている必要があります。他の依存関係は、jar/folder に含めるか、システム プロパティに追加するか、あるいはその両方を行うことができます。ツールは、まず jar/folder をチェックし、必要に応じてシステム プロパティをチェックします。
設定
以下のツール フィールドを設定できます。
フィールド | 説明 | 必須 |
---|---|---|
JAR またはクラス フォルダー | テストのクラス フォルダーまたは jar ファイルを指定します。クラスまたはメソッドを指定せずに jar/folder を指定した場合、TestNG はまずデフォルト名 (testng.xml) のスイート XML ファイルを探し、そのファイルを使用して実行するテストを構成しようとします。そのスイート XML ファイルが利用できず、クラスまたはメソッドが指定されていない場合、ツールは jar/folder 内のすべてのテストを実行します。 | 必須 |
クラス: | jar またはクラス フォルダーから実行する TestNG クラスを指定します。 | 任意 |
メソッド | 実行する TestNG メソッドを指定します。指定したクラス内のすべてのテスト メソッドを実行する場合は、空白のままにします。 | 任意 |
グループ | 実行するテストのグループを指定します。TestNG は、グループによるテスト メソッドの注釈をサポートしており、テスト メソッドをさまざまな論理グループに分けることができます。たとえば、TestNG の単体テストを unit と integration テスト、あるいは smoke と functional テストに分けることができます。このフィールドには、単一のグループか、カンマで区切ったグループのリストを指定します。 詳細については TestNG のドキュメントを参照してください: http://testng.org/doc/documentation-main.html#test-groups | 任意 |
スイート XML ファイル | 実行するスイート XML ファイルを指定します。スイート XML ファイル (デフォルトでは testng.xml ファイルとも呼ばれる) は、どのパッケージ、クラス、スイート、テストを含めるか除外するかの指定、新しいグループの定義、依存関係の指定、データ パラメーターの提供などを行います。 詳細については TestNG のドキュメントを参照してください: http://testng.org/doc/documentation-main.html#testng-xml | 任意 |
パラメーター | パラメータライズされたテスト メソッドに渡すパラメーターを、セミコロンで区切った キー/値 のペアで指定します。これは、スイート XML ファイルでパラメーターを設定する方法に代わるものです。 詳細については TestNG のドキュメントを参照してください: http://testng.org/doc/documentation-main.html#parameters 以下のようなスニペットがテストに含まれている場合、
import static org.testng.AssertJUnit.*; import org.testng.annotations.*; public class DataTest { @Parameters({ "first-name", "last-name" }) @Test public void testData(String firstName, String lastName) { assertEquals("John", firstName); assertEquals("Doe", lastName); } } | 任意 |
コマンドライン引数 | TestNG コマンドライン オプションと、適用する他の TestNG オプションの引数を指定します。コマンドライン引数は、TestNG コマンドラインで指定するのと同じ形式で指定します。 詳細については TestNG のドキュメントを参照してください: http://testng.org/doc/documentation-main.html#running-testng | 任意 |
例
以下の例は、さまざまなシナリオに対応するツールの設定方法を示しています。
特定のテストメソッドの実行
クラス内のすべてのテスト メソッドの実行
特定のグループでのすべてのテストの実行
スイート XML ファイルの実行
コマンドライン引数の指定
結果の参照
実行の詳細および結果については、[コンソール] ビューにレポートされます。また、テストの失敗が検出された場合、品質タスク ビューにレポートされます。
TestNG テストからコンソールへのメッセージのレポート
com.parasoft.api パッケージをプロジェクトにインポートしてアプリケーション コンテキストにアクセスすると、SOAtest が TestNG テスト実行からのメッセージをコンソールにレポートできるようになります。
Application.showMessage("this displays in the console");
<SOATEST_INSTALL>/plugins/com.parasoft.ptest.libs.web_<VERSION>/root/
ディレクトリにある com.parasoft.api.jar ファイルを Java プロジェクトのクラスパスに追加して、リソースをインポートします。
TestNG テストからのデータの取得
SOAtest の出力を TestNG Executor にアタッチして、TestNG のテスト出力からデータを取得し、そのデータを他のテストで使用することができます。どの値を保存するかを指定するように TestNG を構成し、適切なツールを実行ツールの TestNG 出力にアタッチする必要があります。データは XML フォーマットで連結されたツールに渡されます。たとえば、Diff ツール、XML Assertor、または XML Data Bank ツールにデータを送信できます。
TestNG の出力の設定
TestNG はアプリケーション コンテキストにアクセスし、custom_tool_TestNG_output
キーの下にある標準的な Java Map に必要な値を格納する必要があります。TestNG Executor ツールは、保存されたマップのアプリケーション コンテキストをチェックし、ツールの "TestNG Output" 出力に渡される XML に変換します。マップのキーおよび値は文字列でなければなりません。
アプリケーション コンテキストにアクセスするには、「Reporting Messages from TestNG Test to Console」の説明に従って com.parasoft.api パッケージを TestNG にインポートします。
別のツールにデータを送信
XML データを処理するツールに TestNG テストの出力データを送るには、次の操作を行います。
- TestNG Executor を右クリックし、[出力の追加] をクリックします。
- 出力を受け取るツールを選択し、[終了] をクリックします。
例
この例では、multiplyResult
および sumResult
TestNG オペレーションの値を XML Data Bank に保存し、その値を後続のテストで使用できるようにします。次の手順が実行されます。
- TestNG テストは、値を含むマップを作成します。
- マップはアプリケーション コンテキストに配置されます。
- マップ内の値は XML ドキュメントに変換され、TestNG の出力に接続されたツールに渡されます。
@Test public void testExample() throws Exception { int multiplyResult = 8 * 8; int sumResult = 8 + 8; // Create map representing name-value pairs for XML Map<String, String> map = new HashMap<String, String>(); map.put("multiplyResult", String.valueOf(multiplyResult)); map.put("sumResult", String.valueOf(sumResult)); // Get the Parasoft Scripting Context ScriptingContext context = Application.getContext(); // Place the map in the context with the custom_tool_TestNG_output context.put("custom_tool_TestNG_output", map); }
このテストを実行するように構成された TestNG Executor ツールを追加し、XML Data Bank ツールを TestNG の出力に追加します。
どの値を抽出して他のツールで使用するかを指定します。マップのコンテンツは、TestNG の出力に添付されたツールに渡される XML ドキュメント内の <root>
要素の下に表示されます。この例では、値アサーション ツールが追加されました。
サード パーティのコンテンツ
このプラグインは、以下のサード パーティのコンテンツを含みます。
- TestNG (Apache Version 2.0 License)
その他のライセンスの詳細については、このプラグインの licenses フォルダーを参照してください。