2

私は自分のjunitランナーでテストライブラリを書いています。それは4.5から利用できるBlockJUnit4ClassRunnerを拡張します...誰が知っていますか。私のライブラリのユーザーは、任意のjunitバージョンを選択できるはずです(もちろんBlockJUnit4ClassRunnerを使用)。そして、junitへの依存関係を定義する方法がわかりません(現在のバージョンが4.10だとしましょう)。

  • [4.5、4.10]を提供した場合、junitのリリースごとに新しいバージョンをリリースする必要があります
  • [4.5、)は暗黙的に最新バージョンを選択し、ビルドは再現できない可能性があるため、良い習慣かどうかはわかりません。

たとえば、mockitoはコンパイルにのみantとjunit 4.10を使用し、Mavenに依存しません。それが良い習慣かどうかもわかりません。

この依存関係の問題をどのように解決すればよいですか

4

3 に答える 3

1

常に最新バージョンのjunitを使い続けたい場合は、

<version>LATEST</version>

上記は常にjunitの最新リリースまたはスナップショットバージョンを参照します。

使用する場合

<version>RELEASE</version>

次に、リポジトリに存在する最後にリリースされた/スナップショット以外のバージョンを参照します。

また、xyz以降の最新バージョンを含むオープンエンドバージョン範囲の宣言にも問題はありません。

<version>[x.y.z,)</version>

しかし、アーティファクトと互換性のないAPIレベルの変更がjunitの世界で発生する可能性がある場合、事態は悪化します。その意味で、正確なバージョンを提供し、クライアントに同じバージョンに従うように指示する方がよいでしょう。

于 2012-10-24T22:16:39.470 に答える
1

一般に、JUnitリリースには下位互換性があります[*]。開発者は、下位互換性があるように細心の注意を払っています。1つのオプションは、JUnit 4.5への依存関係を宣言することです。そうすれば、ユーザーはpom(バージョン4.10)でそのバージョンをオーバーライドでき、それでも機能するはずです。

上記を実行していて、4.5以降のすべてのバージョンで機能すると主張している場合は、すべてのバージョンでもテストする必要があります。これは、かなり簡単に実行できるはずです。

[*]もちろん、クラスとメソッドは非推奨ですが、それでも機能するはずです。

于 2012-10-25T05:31:34.230 に答える
0

バージョンマーカーLATESTおよびRELEASEの問題は、Maven 2.2.1以前でのみサポートされていますが、Maven3ではサポートされていません。ですから、それらを避けることが重要です。

さらに、提供されたJUnitへの依存関係を定義すると、ユーザーは定義されたバージョンの代わりに別のバージョンを使用できます。

于 2012-10-25T07:05:45.920 に答える