连接 Arquillian 集成测试与测试数据源不起作用

问题描述

我创建了简单的 JEE 应用程序,其中使用 Flyway 进行迁移和 Arquillian 集成测试。在测试时,我想将我的应用程序连接到测试数据源和 migrante 数据库。在春天它很简单 - 不同的@R_404_5679@与连接器的数据。我尝试使用 @Alternative 但它不起作用。我的配置:

部署:

    @Deployment
public static WebArchive createDeployment() {
    File[] files = Maven.resolver()
            .loadPomFromFile("pom.xml")
            .importRuntimeDependencies()
            .resolve()
            .withtransitivity()
            .asFile();

    WebArchive war = ShrinkWrap.create(WebArchive.class)
            .addPackages(true,"com")
            .addAsResource("meta-inf/test-persistence.xml","meta-inf/persistence.xml")
            .addAsManifestResource("meta-inf/test-beans.xml","beans.xml")
            .addAsLibraries(files);

    return war;
}

替代实现:

@Local
public interface DatasourceWrapper {
DataSource getDatasource();
 }


@Alternative
@Stateless
public class MainDatasource implements DatasourceWrapper {

@Resource(mappedname = "java:/MysqLDS")
DataSource dataSource;

@Override
public DataSource getDatasource() {
    return dataSource;
   }
}

@Alternative
@Stateless
public class TestDatasource implements DatasourceWrapper {

   @Resource(mappedname = "java:/test")
   DataSource dataSource;
   @Override
   public DataSource getDatasource() {
     return dataSource;
   }
}

我的资源中有 meta-inf/beans.xml 和测试资源:

    <alternatives>
    <class>com.config.database.datasource.MainDatasource</class>
    </alternatives>

    <alternatives>
    <class>com.config.database.datasource.TestDatasource</class>
    </alternatives>

在 FlyWay 中,我注入数据源来运行迁移:

    @Inject
    DatasourceWrapper datasourceWrapper;

在开发环境中,我的迁移工作完美。 当我在 FlyWayConfig 中调试测试时,我有 MainDatasource,此外我还收到“无法解析位置类路径:db/migration”。 :/ 我认为这与我存档中丢失的文件夹 /db/migration 相关。

我不知道如何在集成测试中更改 FlyWay 的数据源。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)