1. ホーム
  2. java

[解決済み] JUnit: テストユーティリティのクラスで「実行可能なメソッドがない」ことを回避する方法

2022-09-14 12:59:15

質問

JUnit3.8からJUnit4.4へ移行しました。私はantを使用してテストを実行し、すべての私のテストは正常に実行されますが、テストユーティリティクラスは"No runnable methods"エラーで失敗します。私が使用しているパターンは、testフォルダの下に*Test*という名前を持つすべてのクラスを含むことです。

ランナーが @Test 属性でアノテーションされたメソッドを見つけられないことは理解しています。しかし、これらのクラスはテストではないので、そのようなアノテーションは含まれていません。 驚くことに、eclipse でこれらのテストを実行すると、これらのクラスについて文句を言われません。

JUnit3.8 では、これらのユーティリティクラスは TestCase を継承していないので、ランナーはこれらを実行しようとしなかったので、全く問題ありませんでした。

ant スクリプトの junit ターゲットで、これらの特定のクラスを除外できることは知っています。しかし、私は新しいユーティリティ クラスを追加するたびにビルド ファイルを変更したくありません。私はクラスの名前を変更することもできます (しかし、クラスに良い名前を付けることは、常に私の最も弱い才能でした :-) )。

この問題のためのエレガントな解決策はありますか?

どのように解決するのですか?

テストクラスを見つけるために使用されるパターンを制御していると仮定して、私はそれを変更して一致させることを提案します。 *Test ではなく *Test* . そうすると TestHelper はマッチングされませんが FooTest はマッチングされます。