当前位置: 首页 > 知识库问答 >
问题:

需要什么JUnit5 jar文件?(智能j)

强才捷
2023-03-14

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

因此,我正在完成一个类项目,使用在https://search.maven.org/search?q=g:org.junit.jupiter%20和%20v:5.7.0上找到的相同的JUnit5 JAR来运行我的测试。在运行一些测试时,我收到了一个奇怪的错误,于是我决定使用IntelliJ附带的工具“将'JUnit5.4'添加到类路径”,看看在哪里加入了什么.jars使其正常工作。我发现使用Maven获取的内容和我一直使用的JUnit目录中存在的内容有几个差异。

这些是我一直使用的.罐子:

    null

这就是我使用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个答案

萧安怡
2023-03-14

IntelliJ IDEA将根据您尝试生成的测试添加依赖项。如果您只有JUnit5测试,不需要添加Junit的所有部分。在需要运行JUnit4测试的情况下,将添加vintage-engine。关于为什么需要opentest4j,请阅读此处:https://github.com/ota4j-team/opentest4j,关于apiguardian,请阅读此处:https://junit.org/junit5/docs/5.1.0-rc1/release-notes/

 类似资料:
  • 我正在查看的源代码,在api文件夹中有一个文件,内容如下: 我听说这个文件是打字稿类型定义。这是什么?为什么需要它?

  • 我将把我的Android项目从Ant转换为Gradle。 我的Eclipse工作区非常简单: 当我添加构建时。MyApp中的gradle文件,我想引用我的Android库项目: 当我运行gradle build时,出现了一个错误“Project with path”:在根项目中找不到MyApp AndroidLibrary“,我在Google上搜索了一下,发现我需要在我的工作区目录中设置一个“se

  • 问题内容: 如果包含变音符号(ä,ö,ü)在我的Windows操作系统上不起作用。通过反复试验,我发现需要做一些工作。 但是,当我将其实时推送到服务器上(猜测它是某种Linux)时,它又返回了一个错误,因此我删除了,然后突然工作正常。 作为一种解决方法(因此,我不需要在每次更改代码时都手动更改此代码),我已经尝试过 因为这已经反过来解决了相同的问题()也有同样的问题,但是事实证明它在每个(服务器)

  • 问题内容: 我对JAX-WS进行了概述,并注意到了(和)的一些引用。 在什么情况下需要?(我认为JSR 109服务器?!) 问题答案: 是使用SUN的参考实现将Web服务作为标准存档部署在非Java EE5 Servlet容器上时所需的专有部署描述符。 Sun的RI 用作servlet上下文事件的侦听器和调度程序servlet。两者都必须在中声明。然后需要该文件为定义Web服务端点,以使其知道必须

  • 问题内容: Docker对Union File系统(例如AUFS)创建容器究竟做了什么?如果Docker必须使用常规文件系统而不是联合文件系统,那么会有什么缺点? 我正在寻找具体的技术细节/内部信息,而不是高水平的答案。 问题答案: 它用于: 避免在每次将图像作为新容器运行时复制一组完整的文件 在其自己的层中隔离对容器文件系统的更改,从而允许从已知内容重新启动同一容器(因为移除容器后,具有更改的层