質問

エクリプス 3.7.2

私はちょうど実装しました @Rule 一部の JUnit 4 テストでは問題が発生しますが、Eclipse で実行すると、 MethodRule メソッドは呼び出されません。Eclipse テストランナーが認識していないようなものです。 @Rule 実装されており、注釈が付けられたフィールドに対して特別なことは何も行いません。 @Rule.

次のような「標準」MethodRule を使用してみました org.junit.rules.TestName しかし、正しく動作しません (テストの名前がインスタンスに入力されません)。JavaDoc のテスト例でも、 TestName Eclipse で実行すると失敗します。

何かコツがあるのでしょうか?Eclipse は単純に JUnit をサポートしていないのでしょうか ルール?

役に立ちましたか?

解決

問題のプロジェクトのランタイム クラスパスに、一見「必須」と思われる JAR が何者かによって組み込まれていたことが判明しました。この JAR には、とりわけ、JUnit パッケージが埋め込まれています。この JAR には、次のような無害な名前が付けられています。 our_runtime_library.jar これには、いくつかのアプリ固有のコードと、JUnit、Spring などの未知の (ただし古い) バージョンが含まれています。プロジェクトを単体テストとして実行するとき、Eclipse は、プロジェクトがビルドされる (Eclipse) バージョンである独自のバージョン (当然のことながら、プロジェクト固有のライブラリが常に優先されます) ではなく、その JAR 内の JUnit を選択していました。

何という混乱でしょう。今度は誰がこの件で50回の鞭打ちを受けるに値するかを考えてみよう。

他のヒント

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top