ここから[1]の偏微分方程式の単体テスト自動化プロセスを適応させて、複数のテストスイートを処理しようとしています。この記事では、複数のテストスイートを処理できないorg.eclipse.jdt.internal.junit.model.ITestRunListener2を利用しています。代わりにorg.eclipse.jdt.junit.TestRunListenerを使用することを考えています。
含まれているorg.eclipse.jdt.internal.junit.model.ITestRunListener2の実装を変換してjunit.runner.TestRunListenerを実装しようとしました。これは、testRunStarted()メソッドにテストスイート名パラメーターが含まれているためですが、その方法に関する例が見つかりませんでした。 org.eclipse.jdt.internal.junit.model.RemoteTestRunnerClientをそれを使用するように適合させます(PDEテスト結果プロトコルがそれをサポートしているかどうかはわかりません)。
- JUnitCore.addTestRunListener(listener)を使用すると、test-results-listenerアプローチ全体を置き換えることができますか?テストをリモートで実行できる必要はありません。
- [1]にマルチスイートサポートを追加する方法に関する他の提案はありますか?
[1] http://www.eclipse.org/articles/article.php?file=Article-PDEJUnitAntAutomation/index.html
こんにちは、これはOPです。commnetのPaul Websterの返信を追加できなかったので、これを投稿します。
RemoteTestRunnerClientの特徴は、org.eclipse.jdt.internal.junit.runner.MessageIdで定義されたプロトコルに従って通知をリスナーに委任し、メッセージはTCPソケットから読み取られることです。問題は、TEST_RUN_START / ENDメッセージにスイートの名前が含まれていないため、すべてのテストが同じスイートに関連付けられることです。
自動テストフレームワークをセットアップしているときにEclipseテストフレームワークを調べましたが、記事で提案されているアプローチよりもそれを支持する説得力のある理由を見つけることができませんでした。よくわかりませんが、ETFを使用しない理由は、テスト結果の集計に対する適切なサポートが不足しているためだと思います。現在、「org.eclipse.pde.junit.runtime.coretestapplication」アプリケーションに渡される「-classnames」引数を使用しているため、test.xmlファイルを介して実行するスイートを指定できることを理解できます。ETFへの切り替えを検討してもかまいませんが、事前に説得力のある理由を知りたいと思います。
結論として、私のセットアップでは必要なものの99%を実行しているので、完全なテストシステム変換ではなく、迅速で汚い回避策を好むということです。