【问题标题】:org.junit.runner does not existorg.junit.runner 不存在
【发布时间】:2021-09-17 15:59:05
【问题描述】:

我正在尝试使用 JUnit 测试和 Maven 构建 Java Spring 项目。

我的pom.xml

<parent>
    <groupId>beatechs</groupId>
    <artifactId>beatechs</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</parent>

<groupId>beatechs.dao</groupId>
<artifactId>beatechs.dao</artifactId>
<name>beatechs.dao</name>
<packaging>jar</packaging>
<url>http://maven.apache.org</url>
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
    <hibernate.version>5.4.24.Final</hibernate.version>
</properties>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>

    <!--        <dependency>-->
    <!--            <groupId>javax.xml.bind</groupId>-->
    <!--            <artifactId>jaxb-api</artifactId>-->
    <!--            <version>2.3.1</version>-->
    <!--        </dependency>-->
    <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-runtime</artifactId>
        <version>2.3.1</version>
    </dependency>
    <dependency>
        <groupId>javax.activation</groupId>
        <artifactId>javax.activation-api</artifactId>
        <version>1.2.0</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.46</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>com.github.springtestdbunit</groupId>
        <artifactId>spring-test-dbunit</artifactId>
        <version>1.3.0</version>
    </dependency>
    <dependency>
        <groupId>org.dbunit</groupId>
        <artifactId>dbunit</artifactId>
        <version>2.5.0</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-test</artifactId>
        <version>1.4.0.RELEASE</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>4.3.19.RELEASE</version>
    </dependency>


    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
    </dependency>
    <dependency>
        <groupId>beatechs.modelNew</groupId>
        <artifactId>beatechs.modelNew</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <exclusions>
            <exclusion>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-slf4j-impl</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>
<build>
    <finalName>beatechs</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.6.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

我的测试文件在 src>test>Java>com.class.name.test>testclass.class

我不明白为什么会发生此错误,我也尝试删除范围变量。我的项目结构显示 Maven:junit:4.12 所以我不明白为什么它找不到所需的依赖项

【问题讨论】:

  • 你在用 maven 做什么? mvn 安装? mvn 测试?您可以发布您的整个 pom.xml 文件内容吗?
  • @WilliamAndrésBernal 我确实更新了信息,maven test 和 maven install 工作正常,但编译项目没有
  • 你父项目的maven配置是什么?
  • 路径真的是src/test/Java/com.class.name.test/testclass.class吗?由于文件夹层次结构代表包层次结构,因此您的测试 *.java 文件的路径应该看起来像 src/test/java/com/class/name/test/ (注意 .../java/... 带有小写;在 Windows 上无关紧要,但在 *nix 上...)。跨度>
  • 此外,&lt;packaging&gt;jar 是默认值,您不必显式声明它。 &lt;url&gt;http://maven.apache.org 告诉我们您的项目在 Apache 软件基金会的 Maven 章节的幕后。很可能不是,是吗?您不必仅为 Java 版本声明 &lt;build&gt;...maven-compiler-plugin&lt;properties&gt;&lt;maven.compiler.release&gt;1.8 就足够了。它自己将其识别为属性。

标签: java maven junit


【解决方案1】:

当您刚接触 Spring Boot 时,让 Spring Initializr 创建您的 pom.xml。它将创建一个有效的pom.xml

【讨论】:

    猜你喜欢
    • 2012-05-28
    • 1970-01-01
    • 2010-09-15
    • 2015-09-28
    • 2021-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多