【发布时间】: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 上...)。跨度> -
此外,
<packaging>jar是默认值,您不必显式声明它。<url>http://maven.apache.org告诉我们您的项目在 Apache 软件基金会的 Maven 章节的幕后。很可能不是,是吗?您不必仅为 Java 版本声明<build>...maven-compiler-plugin。<properties><maven.compiler.release>1.8就足够了。它自己将其识别为属性。