JMeter 2.7 で JUnit テストを実行しようとしています。ただし、JUnit サンプラーのドロップダウンでテスト クラスを選択すると、それらは表示されません。私が見つけたように、それはテストクラスが別のクラスから拡張されているためです(AbstractJUnit4SpringContextTests
基本クラスであり、その間に便利なメソッドを提供するさまざまな抽象クラスがあります)。これらの基底クラスから拡張されていないテスト クラスを選択できます。
テスト クラスを含む JAR ファイルは Maven (test-jar) によって作成され、すべての依存関係を含む JAR は maven fatjar プラグインによって作成されます。どちらの jar も JMeter/lib/junit ディレクトリに配置されます。
JMeter のマニュアルには、すべてのテスト クラスは JUnit テスト クラスから拡張する必要があると書かれていることは知っていますが、それは JUnit3 にのみ当てはまるようです。JUnit4 では、JMeter はその要件を必要としません。もちろん、すべてのテストを書き直して、基本クラスから拡張する必要がないようにすることもできますが、それは大きなメンテナンスの問題を引き起こします。では、基本クラスから拡張された JMeter を使用して JUnit テストを実行するにはどうすればよいでしょうか。
UDPATE 2012-08-09
PMD のヒントのおかげで、依存関係を 1 つずつ JMeter の lib フォルダーにコピーし、GUI にすべての単体テストが表示されるようになりました。それが可能になる前に、いくつかの問題を自分で解決する必要がありました。
- logkit-1.0.1.jar をフォルダーにコピーすると、JMeter GUI が起動しなくなりました。理由がわかりません。エラーやログ メッセージは表示されませんでした。JVM が開始され、終了しました。
- 春のテストパッケージの古いバージョンを導入したMavenの依存関係によって引き起こされたいくつかのバージョンの競合がありました。その結果、いくつかのテスト クラスが同じ名前の古い基本クラスから拡張されました。pom ファイルでこれらの依存関係を除外すると役立ちました。
JUnit テスト ケースを実行できるようになりました。ただし、私のクラスのいくつかの参照には@Resource
. NullPointerException
JMeter の Testrunner は、これらの参照を挿入していないようです。JMeterログに見られるように、参照がアクセスされるたびに a がスローされるためです。では、JMeter にこれらの依存関係を注入させるにはどうすればよいでしょうか?