3

エクリプス 3.7.2

一部の JUnit 4 テストでを実装したばかりです@Ruleが、Eclipse でそれらを実行すると、MethodRuleメソッドが呼び出されません。Eclipse テスト ランナーが@Rule実装を認識せず、 で注釈が付けられたフィールドに対して特別なことを何もしないようです@Rule

「標準」の MethodRule を使用してみましたorg.junit.rules.TestNameが、正しく動作しません (テストの名前がインスタンスに取り込まれません)。JavaDoc のサンプル テストでさえ、TestNameEclipse で実行すると失敗します。

何かトリックはありますか?Eclipse は単に JUnitルールをサポートしていないのでしょうか?

4

2 に答える 2

4

問題のプロジェクトの実行時クラスパスに、一見「必要な」JAR が含まれていたことが判明しました。その JAR は、JUnit パッケージを埋め込んではなりません。our_runtime_library.jarそのため、JUnit、Spring、および他に何を知っているかの不明な (しかし古い) バージョンとともに、いくつかのアプリ固有のコードを含む、無害な名前のこの JAR があります。プロジェクトを単体テストとして実行すると、Eclipse は、プロジェクトがビルドされる (Eclipse) バージョンである独自のバージョンではなく、その JAR 内の JUnit を選択していました (当然のことながら、プロジェクト固有のライブラリが常に優先されます)。

なんという混乱。誰がこの 50 回のむち打ちに値するかを考えてみましょう。

于 2012-05-21T19:05:18.977 に答える
2

少なくとも私のEclipse(埋め込みJUnit 4.8)では機能するはずです。したがって、コードを表示できます。

さらに、JavaDocは次のように述べています。Note that MethodRule is now deprecated, you should be using TestRule instead.

于 2012-05-22T03:57:58.883 に答える