对于一个使用 JUnit 5 测试的 JavaEE 项目,我决定尝试一下 ActiveJDBC。不幸的是,在此决定之前我使用 JUnit 5 实现了所有测试,因此我必须更新我的测试以使用 ActiveJDBC,并且想知道为什么在扩展类时他们不会从 database.properties 文件中获取 test-db 连接'DBSpec' 并在使用 JUnit 版本 5 而不是版本 4 时抛出 DBException:
org.javalite.activejdbc.DBException:无法从数据库中检索元数据,连接:“默认”不可用
JUnit 5 - 测试
import org.javalite.activejdbc.test.DBSpec;
import org.junit.jupiter.api.Test;
import org.junit.platform.runner.JUnitPlatform;
import org.junit.runner.RunWith;
@RunWith(JUnitPlatform.class)
public class MyModelTest extends DBSpec {
//Test will fail with DBException
@Test
public void one() {
MyModel model = new MyModel();
a(model).shouldBe("valid");
}
}
JUnit 5 - 依赖项
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-runner</artifactId>
<version>1.3.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
<version>1.3.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.3.0</version>
<scope>test</scope>
</dependency>
当我切换到 JUnit 4 时,一切都按预期工作
JUnit 4 - 测试
import org.javalite.activejdbc.test.DBSpec;
import org.junit.Test;
public class MyModelTest extends DBSpec {
//Test will pass
@Test
public void one() {
MyModel model= new MyModel();
a(model).shouldBe("valid");
}
}
JUnit 4 - 依赖项
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
仅仅“重写”我的 JUnit4 测试并不是什么大不了的事,但是在不久的将来有没有支持 JUnit5 的计划?