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
テストを起動するにはいくつかの方法がありますが、これは非常に便利です。 テストクラスまたはソースエディタを右クリックして、そのテストを実行します。
失敗したテストの再実行
複数の失敗したテストがある場合は、テストコードを修正した後、失敗したテストを完全に再実行して時間を節約できます:
プロジェクトが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プラグインの経験を改善し続けています。
著者について
ニック-タン