TestNG Eclipseプラグインで効率的にするには

TestNGは、開発者がグループ化、シーケンス、およびデータ駆動機能を備えた柔軟なテストを書くことを可能にする強力なテストフレームワークであり、並列テストを簡単に書くことさえできます。 そして、私の見解では、最も強力な機能は、TestNGにフックするリスナーのセットであり、テストケースをよりよく制御したり、レポートを強化したりすることがで

TestNG Eclipseプラグインを使用すると、Eclipse IDE内でTestNGテストケースを実行してデバッグすることができます。

この記事では、TestNG Eclipseプラグインを使用してテストを作成して実行する際に効率的にする方法についていくつかのヒントを共有しています。

Installation

TestNG for EclipseプラグインはEclipse Marketplaceで利用できますので、インストールガイドに従ってください。

Use TestNG Eclipse Plugin

Authoring Tests

TestNGテストケースをオーサリングするときは、事前定義されたテンプレートを使用すると、より効率的になります。 テストメソッドを作成するには、エディタでtestと入力し、コンテンツアシストホットキー(私の場合は’Alt+/’)を押して、以下のようにテンプレートを選択します:

注:TestNG Eclipseプラグイン6.10.1には、’setup’、’teardown’などのテンプレートが追加されます。

テストの実行/デバッグ

Lauching Tests

テストを起動するにはいくつかの方法がありますが、これは非常に便利です。 テストクラスまたはソースエディタを右クリックして、そのテストを実行します。

  • パッケージを右クリックして、パッケージの下にあるすべてのテストを実行します。
  • TestNG suite xmlファイルを右クリックして、カスタムテストスイートを実行します。
  • または、実行構成に移動して、実行するテストグループ、ランタイムテストプロセスにシステムプロパティを渡すなど、起動構成をよりよく制御します。
  • 失敗したテストの再実行

    複数の失敗したテストがある場合は、テストコードを修正した後、失敗したテストを完全に再実行して時間を節約できます:

    プロジェクトがMavenで管理されている場合は、テストケースを実行するようにmaven-surefire-pluginまたはmaven-failsafe-pluginを設定することができます。 次のJVM引数とシステムプロパティをランタイムテストプロセスに渡したとします:

    <artifactId>maven-surefire-plugin</artifactId><configuration> <suiteXmlFiles> <suiteXmlFile>test-suite/testng.xml</suiteXmlFile> </suiteXmlFiles> <argLine>-javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar -Xmx1024m -XX:MaxPermSize=512m -Xms256m -Xmx1024m -XX:PermSize=128m -Dversion=${project.version} </argLine> <systemPropertyVariables> <foo>${foo.value}</foo> </systemPropertyVariables> <environmentVariables> <bar>${bar.value}</bar> </environmentVariables></configuration>

    テストはMaven climvn -e testでうまく実行されますが、6.9.10より前のTestNG Eclipseプラグインのバージョンでは失敗する可能性があります。 その場合は、システムプロパティを手動でコピーして、各テストの構成を起動する必要があります。

    幸いなことに、今日、TestNG Eclipseプラグインはmaven-surefire/failsafe-pluginの設定を解析し、それらを起動設定に自動追加できます。 このようにして、動作をコマンドラインで実行することにできるだけ近づけることもできます。 詳細は公式ガイドをご参照ください。

    注:Eclipse BuildshipとのGradle統合の同等の機能は計画中であり、ここでチケットを追跡することができます。

    TestNG Eclipse Plugin Internal

    特に使用に問題がある場合は、TestNG Eclipseプラグインのコアを理解すると便利です。

    テストが実行されている場合、プラグインはランタイムテストプロセスからテスト結果を取得し、リアルタイムでビューに表示する必要があります。

    プラグインとランタイムテストプロセス間の通信はソケットを介して行われます。 プラグインは最初にソケットサーバーを起動します。 ランタイムテストプロセスには、TestNGランタイムにフックし、ソケットを介してプラグインにテスト結果を送り返すリスナーのセットがあります。

    ソケット通信機能はGitHubのプロジェクト’testng-remote’で維持されています。

    最後の言葉

    私たちはTestNG Eclipseプラグインの経験を改善し続けています。

    著者について

    徐清丹

    ニック-タン

    コメントを残す

    メールアドレスが公開されることはありません。