【问题标题】:JUnit on IntelliJ not workingIntelliJ 上的 JUnit 不工作
【发布时间】:2018-07-28 03:27:09
【问题描述】:

我尝试在我的 INtelliJ IDEA Community Edition 2018.2 上设置 JUnit 5。 jar 已下载,但我在导入时收到 Cannot resolve symbol Assertions

导入静态 org.junit.jupiter.api.Assertions.*;

Error

【问题讨论】:

标签: intellij-idea junit


【解决方案1】:

您是否尝试在常规应用类而不是测试类中使用 JUnit 断言?

删除<scope>test</scope>

当 Maven 依赖项带有一个值为 testscope 元素时,这意味着您不能在特定于测试的源包/文件夹之外使用该库。

如果您尝试从示例项目的 src/main/java/… 文件夹层次结构中的代码调用 JUnit,您将看到该错误。如果你从src/test/java… 调用JUnit,你会看到成功。

要在 src/main/java/… 文件夹层次结构中启用 JUnit,请删除 POM 依赖项中的 scope 元素。所以这个:

<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter -->
<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter</artifactId>
    <version>5.4.0-RC1</version>
    <scope>test</scope>
</dependency>

…变成这样:

<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter -->
<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter</artifactId>
    <version>5.4.0-RC1</version>
</dependency>

顺便提一下,从 JUnit 5.4.0 开始,我们可以指定 junit-jupiter 的新的非常方便的单个 Maven 工件,这反过来将为您的项目提供 8 个库。

【讨论】:

  • 似乎 IntelliJ 中的一些基本内容被破坏了,删除 .m2/repository 也失败了,尝试了 junit 4 和 5,它无法使用来自 maven 的 deps 编译 s/rc/test/java 中的代码,从maven 工作,所以 maven 没有配置错误
  • @teknopaul (a) 默认情况下,IntelliJ 使用自己捆绑的 Maven 副本。如果您想使用 Maven 的外部副本,您可能需要设置一些设置。 (b) 确保更新您的 IntelliJ 版本。他们的Toolbox 小程序可以轻松更新您的 IntelliJ。
  • @teknopaul 我建议您尝试使用Maven Quickstart Archetype 的新项目,只是为了验证您的环境。编辑 POM 以使用其所有部分的最新版本。在 JUnit 4 中运行默认测试。然后将 JUnit 4 依赖项替换为 JUnit 5 Jupiter Aggregator 依赖项。更新默认测试中的导入,然后再次运行。
猜你喜欢
  • 2014-01-10
  • 1970-01-01
  • 2012-04-06
  • 1970-01-01
  • 2021-08-09
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 2018-11-24
相关资源
最近更新 更多