具有2个模块的Maven集成测试

用户名

我有2个模块的应用程序:

  • Web JSF(在Tomcat上部署的WAR)

  • REST服务(在Wildfly上部署了WAR)

对于集成测试,我使用maven插件:

  • Maven故障安全插件

  • fabric8 Maven插件

我的测试源代码和资源都位于两个应用程序src / integration-test / java中。

在集成测试阶段,fabric8构建Wildfly docker映像,复制构建的articact(REST Services WAR),启动容器并运行测试。它可以正常工作。

但是...我想配置Maven以部署2个应用程序(Web JSF WAR工件和REST Services WAR)并从JSF WAR / src / integration-test / java运行集成测试。使用fabric8插件可以轻松构建和运行Tomcat和Wildfly容器,但是我找不到如何从不同的Maven模块部署2个不同的工件。也许你有什么主意吗?

最好的问候,MJ。

亚历克斯M981

io.fabric8 docker-maven-plugin支持多个映像。您可以创建一个负责运行集成测试的模块。该模块将取决于您在问题中提到的2个WAR工件。

    <dependencies>
        <dependency>
            <groupId>com.your.maven.group.here</groupId>
            <artifactId>your-maven-artifact</artifactId>
            <version>${project.version}</version>
            <type>war</type>
        </dependency>

        <dependency>
            ...
        </dependency>
    </dependencies>

然后,您可以使用io.fabric8设置必要的容器。这是我的项目中的一个示例(为了简化和简洁,删除了一些细节)。这个例子不是关于Tomcat和Wildfly的,而是为了说明这个想法。

    <plugin>
        <groupId>io.fabric8</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <configuration>
            <images>
                <image>
                    ....
                </image>
                <image>
                    <name>my-admin-site</name>
                    <alias>admin-ux</alias>
                    <build>
                        <from>jetty</from>
                        <ports>
                            <port>8080</port>
                        </ports>
                        <runCmds>
                            <run>mkdir -p /run/jetty /tmp/jetty</run>
                            <run>chmod -R 1777 /tmp</run>
                            <run>chown -R jetty:jetty /var/lib/jetty /run/jetty /tmp/jetty</run>
                        </runCmds>
                        <assembly>
                            <mode>dir</mode>
                            <basedir>/var/lib/jetty</basedir>
                            <inline xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2">
                                <id>my-admin-ux</id>
                                <dependencySets>
                                    <dependencySet>
                                        <includes>
                                            <include>com.your.maven.group.here:your-maven-artifact:war</include>
                                        </includes>
                                        <outputDirectory>./webapps</outputDirectory>
                                        <outputFileNameMapping>myAdminSite.war</outputFileNameMapping>
                                    </dependencySet>
                                </dependencySets>
                                <files>
                                    <file>
                                        <source>src/main/docker/admin-ux/resources/service.properties</source>
                                        <outputDirectory>./resources</outputDirectory>
                                    </file>
                                </files>
                            </inline>
                            <user>jetty:jetty</user>
                        </assembly>
                    </build>
                    <run>
                        <ports>
                            <port>10540:8080</port>
                        </ports>
                        <links>
                            <link>zookeeper:zookeeper</link>
                        </links>
                    </run>
                </image>
                <image>
                    .....
                </image>
            </images>
        </configuration>
    </plugin>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在多模块Maven项目中构建所有模块之后,如何运行集成测试?

具有流利验证的集成测试API

集成测试具有模拟延迟的调用

多模块Maven项目中的共享集成测试

用于集成测试的多模块maven jacoco设置

ctest-运行具有2个标签的测试

Maven:如何在两个不同的模块下放置一个具有相同名称的模块?

与具有不同版本的给定依赖关系的同一个Maven模块的差异

具有集成测试的公共库中的Flyway

具有重写DAO类的Spring Framework集成测试

具有不同输入的集成模型(预计查看2个数组)

是否有一个Maven插件列出了多模块项目中的所有JUnit测试

具有最佳Maven集成的免费Java IDE

具有多模块Maven的声纳Maven插件

具有WTP的多模块Maven2项目

如何将带有@SpringBootApplication 的 Maven 模块作为测试范围中的依赖项添加到另一个 Maven 模块

在声纳中获得正确的覆盖率,以在单独的Maven模块中进行单元和集成测试

Maven在多模块集成测试类路径上找不到某些资源

使用Maven-ant-task获取用于多模块项目的集成测试的类路径

Maven测试模块

我如何编译一个多模块的Maven项目,其中一个模块同时具有clojure和Java代码

我应该测试模块是否具有某些属性吗?

具有版本号可变的Maven模块

具有不同Maven模块的Spring资源解析器

具有Maven模块的自定义Mojos

具有多个模块和多个程序集的Maven项目

Maven:如何在第三个模块中使用相同的测试来测试两个模块

基于Spring-Boot模块的集成测试

Gradle:使集成测试源模块正常工作