1

テストのあるプロジェクトがあります。Suiteすべてのパッケージにランナーを設定した AllTests クラスがありAllTest、他のすべてのクラスを集約するマスターがありAllTestます。マスターも運営していSuiteます。

IntegrationTestインターフェイスとIntegrationTestSuiteクラスも定義しました。IntegrationTestSuiteによって実行されCategories、 としてSuiteClass、マスターを指定し、 で注釈AllTestsも追加しました。いくつかのテストでは、クラス レベルで注釈を使用して、いくつかのテストを統合スイートに含めます。IncludeCategoryIntegrationTest.class@Category(IntegrationTest.class)

PowerMockRunnerによって実行され、注釈も付けられるテストクラスがいくつかあります@Category(IntegraionTest.class)。私の問題は基本的に、これらのテストの一部は私の Gradle ビルドによって実行され、一部は単にスキップされることです。スキップされたテストの注釈を削除するとPrepareForTest、powermock が正しく設定されていないというエラー メッセージが表示され、これらのエラー メッセージはレポートにも表示されます。それ以外の場合は、単に無音です。

これに関する奇妙なことは、Eclipse で同じスイートを実行したとき、短期間、gradle がスキップされたテストを見つけて実行できたことです。しかし、しばらくすると、Eclipse JUnit ランナーもこれらのテストを忘れてしまい、スイートの実行時にテストを実行しなくなりました。これらのテストを直接実行すると、正常に実行されます。

私が間違っていること、または何が間違っているのかをどこで確認できますか? gradle --stacktrace または --debug スイッチを使用しても役に立ちませんでした。これらのテストに関する出力には情報がありませんでした。

ありがとう!

4

1 に答える 1

1

テストで PowerMock を使用していると述べました。PowerMockRunner は、スイートのクラスローダーとは別のクラスローダーを使用して IntegrationTest インターフェイス クラスをロードします。これは、実行するテストを決定するときに、junit の isAssignableFrom テストが失敗するというものでした。-> @PowerMockIgnore からのエントリが 1 つありません。

于 2013-10-29T13:47:54.363 に答える