Maven 在运行时不运行@BeforeEach方法
我有一个测试类让我们称之为,一个测试对象让我们调用这个。TestSomething
SomeObject
现在我需要这个对象在每个单一测试新,这意味着我在我的代码中有一个在字段中加载这个对象:@BeforeEach
import me.test.SomeObject;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
public class TestSomething {
private SomeObject someObject;
@BeforeEach
public void load() {
someObject = new SomeObject();
}
@Test
public void test1() {
boolean result = someObject.checkForSomething();
Assertions.assertEquals(true, result);
}
@Test
public void test2() {
boolean result = someObject.checkForSomethingElse();
Assertions.assertEquals(false, result);
}
来自测试模块的 pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<artifactId>test</artifactId>
<groupId>me.test</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<properties>
<projectVersion>1.0.0</projectVersion>
<maven.deploy.skip>false</maven.deploy.skip>
</properties>
<artifactId>Tests</artifactId>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.0.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>me.test</groupId>
<artifactId>project</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
不确定它是否相关,但对象位于单独的模块中,并且测试模块对具有作用域的模块具有依赖关系。(我也试过和SomeObject
test
provided
compile
)
所以现在如果我在InteliJ中运行这个测试,它们工作得很好。但是现在,如果我尝试构建我的项目,测试会失败,使用NullPointerExceptions,因为是.someObject
null
现在,我在每个测试中调用方法的测试工作,但这并不是我想要的。load()