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



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目录中存在的内容存在一些差异。

这些是我一直在使用的。jar文件:

  • 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. 为什么在JUnit网站上有这么多文件,当我使用IntelliJ添加JUnit时不包括?
  2. 当我通过IntelliJ (apguardian -api-1.0.0.jar和opentest4j-1.1.1.jar)添加时,包含了一些不在JUnit网站上的文件。这是怎么回事?
  3. IntelliJ如何确定添加到类路径时需要哪些.jar文件?是否总是包含相同的文件,还是只包含必要的文件?

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

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

最新更新