ホームページ  >  記事  >  pom で JUnit5 を使用しているにもかかわらず、Maven Surefire プラグインは依然としてデフォルトで JUnit4 になります

pom で JUnit5 を使用しているにもかかわらず、Maven Surefire プラグインは依然としてデフォルトで JUnit4 になります

WBOY
WBOY転載
2024-02-13 14:00:10504ブラウズ

私が pom で JUnit5 を使用しているにもかかわらず、Maven Surefire プラグインのデフォルトは依然として JUnit4 です。これにより、特に JUnit5 の新機能を使用する場合に、いくつかの問題が発生する可能性があります。この問題を解決するには、pom ファイルを構成することで、Surefire プラグインに JUnit5 をデフォルトのテスト ランナーとして使用するように指示できます。 pom ファイルの build タグに、plugins タグを追加し、その中で maven-surefire-plugin を設定する必要があります。構成では、testFrameworkProviderName を org.junit.platform.surefire.provider.JUnitPlatformProvider として指定する必要があります。このようにして、mvn test コマンドを実行すると、Surefire プラグインは JUnit5 を使用してテストを実行します。この構成により、JUnit5 の使用中にテストを正常に実行できることが保証されます。

質問内容

この記事を読みました。これは私の親のポンです:

リーリー

私のサブプロジェクトには、junit 依存関係がありません。 mvn install を実行すると、次のように表示されます:

リーリー

自動的に検出されるプロバイダーが org.apache.maven.surefire.junit4.junit4provider であるのはなぜですか? junit5 を使用する必要があります。

mvn dependency:tree を実行すると、次のように表示されます:

リーリー

これも奇妙です。pom.xml でバージョン 5.9.31.9.3 を使用していないからです。 junit-bom:5.10.1 を使用しています。

Maven がすぐに正しく動作しない理由と理由は何ですか?

解決策

理由:

リーリー

依存関係ツリー内。 pom.xml 内の junit-platform-runner への依存関係を削除すると、問題が解決されました。

私の場合、これは、dependencymanagementspring-boot-dependency:3.1.5 も参照していたためであり、これは junit で優先されました。 -bom:5.10.1spring-boot-dependency:3.1.5 には、junit-bom:5.9.3 への参照が渡されます。

以上がpom で JUnit5 を使用しているにもかかわらず、Maven Surefire プラグインは依然としてデフォルトで JUnit4 になりますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。