我有一个非常简单的junit测试类,它可以在Eclipse JUnit启动器中成功运行。Maven构建失败,测试范围为junit
以下是JUnit的pom依赖项。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
...
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.10.19</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<version>1.3</version>
<scope>test</scope>
</dependency>
...
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
</plugin>
</plugins>
</build>
</project>
但是,上运行Maven构建,我得到如下错误信息:
MyTest.java:[3,24] package org.junit does not exist
而且,建立运行从JUnit的依赖移除<scope>test</scope>
成功后。
为什么它在测试范围和如何解决它失败?
我正在使用Java 8和Maven 3.3.9版本。
编辑 - 最小的,完整的和可验证的代码添加
既然不能分享实际的代码,我创建了一个演示测试类,并得到下面的同样的错误。
/MyProject/demo/src/test/java/com/MyTest.java:[3,24] package org.junit does not exist
/MyProject/demo/src/test/java/com/MyTest.java:[3,1] static import only from classes and interfaces
/MyProject/demo/src/test/java/com/MyTest.java:[5,17] package org.junit does not exist
MyTest的类:
package com;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class MyTest {
@Test
public void demo() throws Exception {
int expected = 10;
int actual = 10;
assertEquals(expected, actual);
}
}
而且,它是一个多模块项目。 JUnit依赖项在普通模块下,Test类在demo模块下。
的pom.xml在演示模块包括通用模块的依赖关系:
<dependencies>
<dependency>
<groupId>myproject</groupId>
<artifactId>common</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
然而,构建复制MyTest的类通用模块后得到了成功。所以,通用模块中的junit依赖似乎不会导入到演示模块。
测试应该放在'src/test/java'文件夹中,并且应该用'@ Test'注释。这是你的情况吗?如果没有,也许你可以提供完整的'pom.xml'文件和你的测试代码,以验证一切是否正常。 –
如果BoniGarcía建议的不是您的问题,请提供更多信息。但是看起来你的POM和使用情况都不错,所以确实可能你没有使用src/test文件夹。 –
我有src/test/java /文件夹下的测试类,并用@Test注解。我无法分享完整的代码,但会在一段时间内分享相关的代码。 –