【发布时间】:2021-10-09 09:09:40
【问题描述】:
我正在学习 java,现在我有一个错误:在项目构建路径上找不到类 'org.junit.platform.commons.annotation.testable' 我不明白我做错了什么。在其他项目中,junit 工作成功 我的项目浏览器ProjectExplorer 我尝试在构建路径中添加 junit,将测试运行器更改为 Junit4 并添加其他版本的 Junit 依赖项,但它对我不起作用。
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<exec.version>3.0.0</exec.version>
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
<maven-surefire-plugin.version>3.0.0-M3</maven-surefire-plugin.version>
<junit.version>5.7.0</junit.version>
<junit-platform-surefire-provider.version>1.3.2</junit-platform-surefire-provider.version>
<!-- some other things -->
</properties>
<dependencies>
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>${exec.version}</version>
</dependency> <!-- Test dependency -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.version}</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>${junit.version}</version>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-surefire-provider</artifactId>
<version>${junit-platform-surefire-provider.version}</version>
</dependency>
<!-- some other dependency -->
<!-- Logger dependency -->
<!-- Services dependency -->
</dependencies>
<build>
<sourceDirectory>/src/main/java </sourceDirectory>
<testSourceDirectory>/src/test/java </testSourceDirectory>
<pluginManagement>
<plugins>
<plugin>
<groupId> org.apache.maven.plugins </groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<trimStackTrace>false</trimStackTrace>
<includes>
<include>**\testWindowLogin.java</include>
</includes>
</configuration>
<dependencies>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-surefire-provider</artifactId>
<version>${junit-platform-surefire-provider.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>${sonar-maven-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>${exec.version}</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
【问题讨论】:
-
您能分享一张您的项目结构的图片吗?通常,当您的测试位于源代码 (src/main/java) 而不是测试 (src/test/java) 中时,您会收到此错误。
-
我在主题的开始消息中添加了我的项目浏览器的图片
-
删除对
junit-platform-surefire-provider的依赖 进一步删除对 maven-surefire-plugin 的插件配置中的junit-platform-surefire-provider的依赖。此外,删除包含配置并遵循TestWindowLogin.java或WindowLoginTest.java的默认命名模式...同时删除<sourceDirectory>..和<testSourceDirectory>..的配置条目... -
从 Eclipse 配置中删除整个项目,然后通过 Eclipse 的导入功能重新导入整个项目作为 Maven 项目......
-
@CapitanNemo 您是否尝试在命令行上运行 Maven,例如
mvn clean install?