【发布时间】:2021-05-22 05:49:33
【问题描述】:
在一个项目中,我们没有使用 spring(其中存在大量关于 testcontainers 的信息),而是一个相当旧的 jboss 版本 6.4.0.EAP 和休眠,我们无法更改。测试框架是junit4,在某种程度上是arquillian。
我尝试改进集成测试,并希望至少在数据库测试设置中使用测试容器。我知道如何启动一个测试容器(在这种情况下是 mysqlcontainer)以及如何运行现有的 liquibase 脚本。
我坚持的是: 如何使用数据源,我可以从我启动的容器中获得它
public DataSource getDataSource(MySQLContainer<?> mySQLContainer) {
MysqlDataSource ds = new MysqlDataSource();
ds.setUser(mySQLContainer.getUsername());
ds.setPassword(mySQLContainer.getPassword());
ds.setURL(mySQLContainer.getJdbcUrl());
return ds;
}
创建一个实体管理器,然后将其注入到现有的 Dao 中? 应用程序中的 Dao 是这样定义的
@ApplicationScoped
public class MyDao {
@Inject
private EntityManager entityManager;
protected EntityManager getEM() {
return entityManager;
}
}
【问题讨论】:
-
你试过这样的事情吗? stackoverflow.com/questions/22137454/…我实际上不确定这是否是正确的方法,但看起来与您的问题相似。
-
@VitalyChura 我试一试 - 这似乎是要走的路,只是项目中 arquillian 测试设置过于复杂而造成的一些问题。感谢您的提示。
标签: java jboss java-ee-6 entitymanager testcontainers