を使用してEclipse 3.4からEclipse 3.5に切り替える必要があります。私たちのJUnitテストはJUnit 4.3.1を使用しており、テストスイートを開始するための起動設定があります。私はここで詳しく説明する必要はないと思う。
問題がある:Eclipseの3.5でテストを実行
は動作しません:JUnitはテストクラス(いずれも(で)テストも(RunWith)で)内の任意の注釈を見つけることができません。
私が起こっているかどうか確認するためにいくつかのログ出力でのJUnitライブラリにパッチを当て。
JUnitに渡されたテストクラスは、JUnitが 'RunWith'のような注釈クラスをロードするために使用するClassLoaderとは異なるClassLoaderであることがわかりました。これは、最初の行が二行目は別のクラスローダを印刷
in org.junit.internal.requests.ClassRequest:
public Runner getRunner() {
log("TestClass ClassLoader: "+this.fTestClass.getClassLoader());
log("RunWith.class ClassLoader: "+RunWith.class.getClassLoader());
... // validating test class: searching for annotations and more
}
のEclipse 3.4には当てはまりません。 JUnit は、テストクラスの注釈と注釈クラス(ここではRunWith.class)を一致させることができないため、悪いです。CL1の "RunWith"はCL2の "RunWith"と等しくありません。
Iは、コアの問題を指して解決策があります。一つだけのJUnit-バージョンがあるように、JUnitの4.3.1でEclipseのガリレオでのJUnit 4.5を交換する:テストランやテストクラスがありますどちらもJUnit 4.3.1()を使用していました。これは、 "org.eclipse.jdt.junit4.runtime"にパッチを当ててjalitのバージョンを受け入れる必要がありました。
テストクラスのJUnit 4.3.1をバージョン4.5に置き換えることもできますが、これはまだオプションではありません。
推測:クラスが異なるJUnitの-バンドル「から来る」のでクラスローダが異なっている:バージョン4.3.1からの注釈付きTestClassを、テストバージョンで実行さ4.5
何I知りたいこと: Eclipse(JUnitのバージョンを置き換える)にパッチを当てる以外の解決策はありますか?コマンドライン引数など? EclipseにJUnit 4.3.1を使用させるための設定
上記分析のヒントは歓迎します!