需要哪些 JUnit5 jar 文件? (IntelliJ)

时间:2021-01-18 18:08:05

标签: java maven intellij-idea junit jar

TLDR:我是 Java 世界的新手。在运行测试时,如何知道要在 JUnit 目录中包含哪些 .jar 文件而不会收到错误消息?

所以我正在完成一个班级项目,使用与 https://search.maven.org/search?q=g:org.junit.jupiter%20AND%20v:5.7.0 相同的 JUnit5 jar 来运行我的测试。我在运行一些测试时收到一个奇怪的错误,并决定使用 IntelliJ 附带的工具“将‘JUnit5.4’添加到类路径”,以查看哪些 .jars 被拉入以使其全部工作。我发现使用 Maven 提取的内容与我一直使用的 JUnit 目录中存在的内容存在一些差异。

这些是我一直在使用的 .jars:

  • junit-jupiter-5.7.0.jar
  • junit-jupiter-api-5.7.0.jar
  • junit-jupiter-engine-5.7.0.jar
  • junit-jupiter-migrationsupport-5.7.0.jar
  • junit-jupiter-params-5.7.0.jar

这是我使用 IntelliJ 添加 JUnit5.4 时包含的内容:

  • apiguardian-api-1.0.0.jar
  • junit-jupiter-5.4.2.jar
  • junit-jupiter-api-5.4.2.jar
  • junit-jupiter-engine-5.4.2.jar
  • junit-jupiter-params-5.4.2.jar
  • junit-platform-commons-1.4.2.jar
  • junit-platform-engine-1.4.2.jar
  • opentest4j-1.1.1.jar

进一步调查我发现 JUnit5 由三个“子项目”(Jupiter、Vintage 和 Platform)组成,但是当我通过 IntelliJ 添加 JUnit 时,所有这些 .jar 文件都不包含在内。

  1. 当我使用 IntelliJ 添加 JUnit 时,为什么 JUnit 网站上有这么多文件未包含在内?
  2. 当我通过 IntelliJ(apiguardian-api-1.0.0.jar 和 opentest4j-1.1.1.jar)添加时,JUnit 网站上没有包含这些文件。这是怎么回事?
  3. 在添加到类路径时,IntelliJ 如何确定需要哪些 .jar 文件?它总是相同的文件还是只包含必要的文件?

就像我之前说的,我是 Java 世界的新手,所以希望我的措辞是正确的。

1 个答案:

答案 0 :(得分:0)

IntelliJ IDEA 将根据您尝试生成的测试添加依赖项。如果您只有 Junit 5 测试,则不需要添加 Junit 的所有部分。如果您需要运行 Junit 4 测试,将添加复古引擎。请在此处阅读为什么需要 opentest4jhttps://github.com/ota4j-team/opentest4j 以及这里的apiguardianhttps://junit.org/junit5/docs/5.1.0-RC1/release-notes/

相关问题