0

对于一个使用 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 的计划?

4

1 回答 1

0

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

于 2018-09-05T15:02:00.743 回答