私は、Java + Spring 3.0.1アプリケーションのためにいくつかのユニットtestngテストを書いています。テストクラスは、AbstractTestNGSpringContextTestsクラスを拡張します。maven testngは失敗しますが、Eclipseで動作します
STS 2.8.1(右クリック→実行→テスト)を使用して、すべてEclipseでうまく動作します。しかしコマンドラインからは失敗します。私はmaven 2.2.1を使用しています。私はpom.xmlファイルに特定のテストプラグインを定義していないので、私はデフォルトのバージョンを使用していると仮定します。
私は、テストチェンジオブジェクトの状態が変化しても、コマンドラインのテストメソッドは同時に実行されており、互いに衝突していると考えています。
しかし、mavenテストを順番に実行するオプションはありません。
私は更新
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.1.1</version>
<scope>test</scope>
</dependency>
...しかし、私はTestNGの依存関係を指定した、テスト用プラグインを指定していないと述べた - 私は、問題を解決しました。 プロジェクトは、Eclipseでインポートして変更した別のプロジェクトに依存していましたが、.m2リポジトリにインストールされていませんでした。 これは、Eclipseでテストを実行すると、Eclipseワークスペースのプロジェクトから最新の変更が選択されたことを意味します。しかし、私がコマンドラインから実行したとき、古いバージョンのプロジェクトが.m2リポジトリから取得されました。
テストクラスの例を教えてください。 Mavenはデフォルトでsurefireプラグインを使ってテストを実行します。 – tom
私は彼らが非常に複雑で、リモートエンドポイントへのメッセージングチャネルのためのテストであり、モックオブジェクトを使用して遠隔エンドポイントから異なる結果を返すようにしたいと考えていません。私が言うことができるのは、各メソッドの上部に@Test注釈を使用することだけです。 – user1232555
設定しない限り、テストは順番に実行されます。あなたはtestng '6.4'にアップグレードしてプラグインを' 2.12'にして、何か違いがあるかどうか確認することができます。 – Raghuram