ActiveJDBC DBSpec - JUnit5 支持

ActiveJDBC DBSpec - JUnit5 support

对于使用 JUnit 5 测试的 JavaEE 项目,我决定尝试使用 ActiveJDBC。不幸的是,我在做出此决定之前使用 JUnit 5 实现了所有测试,因此我必须更新我的测试以使用 ActiveJDBC,并且想知道为什么他们在扩展时不会从 database.properties 文件中获取测试数据库连接class 与 'DBSpec' 并在使用 JUnit 版本 5 而不是版本 4 时抛出 DBException:

org.javalite.activejdbc.DBException: Failed to retrieve metadata from DB, connection: 'default' is not available

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>

只是 'rewrite' 我对 JUnit4 的测试没什么大不了的,但是有没有计划在不久的将来支持 JUnit5?

你说得对,目前还不支持 JUnit5。我们提交了一个新问题:https://github.com/javalite/activejdbc/issues/784 以添加对它的支持。请跟踪它以查看下一个快照何时可用。