Intellij“java:package org.junit不存在”

时间:2015-04-20 07:34:16

标签: intellij-idea

当我尝试运行测试时,我得到以下错误: 我在google上查了一下,在google上发现了一些东西,但这没什么用。

Error:(3, 24) java: package org.junit does not exist
Error:(3, 1) java: static import only from classes and interfaces
Error:(5, 17) java: package org.junit does not exist
Error:(6, 17) java: package org.junit does not exist
Error:(12, 10) java: cannot find symbol
    symbol:   class Before
    location: class edu.kit.ipd.swt1.SimpleEditMeTest
Error:(17, 10) java: cannot find symbol
    symbol:   class Test
    location: class edu.kit.ipd.swt1.SimpleEditMeTest
[...]

我的测试代码:

package edu.kit.ipd.swt1;
import static org.junit.Assert.assertNotNull;
import org.junit.Before;
import org.junit.Test;

public class SimpleEditMeTest {
private EditMe editMe;
@Before
public void setUp() throws Exception {
    editMe = new EditMe();
}
@Test
public void test() {
    assertNotNull(editMe.getFoo());
}
}

Screenshot of the whole project

Run configurations

依赖关系i.stack.imgur。 com / OiQWU.png(不能发布2个以上的链接)

11 个答案:

答案 0 :(得分:11)

我遇到了同样的问题。为了解决这个问题,我必须为我的项目打开模块设置,并手动添加IntelliJ安装lib目录中包含的jar依赖项junit-4.12.jarhamcrest-core-1.3.jar

答案 1 :(得分:3)

对于任何使用maven结尾的人来说,有几件事需要检查:

  • (完整性检查)您是否已将junit添加为pom.xml中的依赖项?
  • 让Intellij接受您的模块作为maven模块吗?尝试右键单击模块/项目,然后选择Add as Maven ProjectMaven->Reimport
  • 您是否在pom文件中的依赖项声明中使用了显式版本?像<version>4.12</version>一样。试试吧。 (您可能不希望这样,因为您希望版本由父模块决定。请继续阅读。)
  • 您记得添加dependencyManagement吗?如果您不想在当前项目中明确地使用它,Maven需要它来解析正确的版本号。对我来说,它指的是父项目。像这样:
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.myorg</groupId>
            <artifactId>myproject-parent</artifactId>
            <version>${myproject.version}</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
    </dependencies>
</dependencyManagement>

答案 2 :(得分:1)

解决方案是将junit库添加为项目的依赖项。这可以通过将junit添加到全局库中,然后将鼠标悬停在错误(junit word)上,然后右键单击以将junit添加到类路径中来完成。 alt + shift + ctrl + s可以在同一项目中获得项目设置,既可以将junit添加到全局库中,也可以将项目添加到rob中在rob中提到的项目部分中。 once you add it here the red bulb icon would give you option to resolve the error by adding it to class path.

答案 3 :(得分:1)

就我而言,我还手动将 junit library dependency 添加到项目中。

我正在使用 IntelliJ 2020.2

它有效!

capture image adding junit library to intellij

答案 4 :(得分:0)

我有同样的问题。添加JAR没什么区别。我通过为Junit 5.3添加库(而非JAR)依赖项解决了该问题

答案 5 :(得分:0)

这对我有用:

  1. 右键单击pom.xml
  2. 选择Maven
  3. 重新加载项目

答案 6 :(得分:0)

您可以通过将junit依赖更改为仅从test进行编译来转到项目结构和编辑依赖

intelij community edition

答案 7 :(得分:0)

将 JUnit 依赖添加到 build.gradle 解决了问题

dependencies {
    testCompile 'junit:junit:4.12'
    compile 'junit:junit:4.12'
}

答案 8 :(得分:0)

如果您使用 Jupiter 进行 Junit5 测试, 那么你需要两件事: -> Jupiter-junit-api -> 木星引擎

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

答案 9 :(得分:0)

您正在尝试运行您的测试,因此您需要将 JUnit 的范围设置为与图片中相同的“编译”:

1

答案 10 :(得分:0)

我认为这是 intellij 的一个错误,因为他们有时无法在构建操作期间加载具有测试范围的依赖项。 你可以看到这个错误只会出现在测试范围内的依赖项上。