Testing 如何使用arquillian进行具有多个maven模块的集成测试

Testing 如何使用arquillian进行具有多个maven模块的集成测试,testing,module,structure,containers,jboss-arquillian,Testing,Module,Structure,Containers,Jboss Arquillian,我有多个maven模块:DBLayer(包含所有实体)、UserManagement(用户管理服务)、WebApp 对于设置测试,我需要了解如何构建所有内容 我想在嵌入式容器中测试每个模块。大家都知道,在每个模块中,我都有我的测试文件夹,我把测试类放在那里。我是否必须在每个模块测试类(为测试准备嵌入式容器的代码)中设置包覆面处理,还是只在webapp中需要 我在每个模块pom文件中都有arquillian依赖项。有没有更好的方法添加这些依赖项 先谢谢你 我想在嵌入式容器中测试每个模块(…) 如果

我有多个maven模块:DBLayer(包含所有实体)、UserManagement(用户管理服务)、WebApp

对于设置测试,我需要了解如何构建所有内容

我想在嵌入式容器中测试每个模块。大家都知道,在每个模块中,我都有我的测试文件夹,我把测试类放在那里。我是否必须在每个模块测试类(为测试准备嵌入式容器的代码)中设置包覆面处理,还是只在webapp中需要

我在每个模块pom文件中都有arquillian依赖项。有没有更好的方法添加这些依赖项

先谢谢你

我想在嵌入式容器中测试每个模块(…)

如果您正在考虑嵌入式容器,请查看。丹·艾伦在他的短文中详细解释了这一点。请看一看

在我看来,您正在使用Maven,那么下面的内容在将集成测试与单元测试分离方面可能会很有用。简而言之:坚持Maven命名约定(只需使用
*IT
后缀命名您的集成测试,例如
MyClassIT.java
),让
Maven故障保护插件
完成它的工作


我是否必须在每个模块测试类(代码)中设置包覆面处理 为测试准备嵌入式容器),还是仅此而已 在webapp中

不幸的是,是的。这是因为您可能希望为每个测试类准备不同的部署。但缺点显而易见:

  • 通常重复部署的设置
  • 降低测试的执行速度(每个测试用例都有一个新的部署操作)
  • 幸运的是,有一种方法可以让你实现这一目标。扩展将强制TestSuite中的所有类从相同的
    DeploymentScenario
    运行。但据我所知,这是一个比表面上看起来更复杂的主题——请记住,这个扩展(尽管非常有用)可能无法与其他一些arquillian扩展一起使用


    我在每个模块pom文件中都有arquillian依赖项。是 有更好的方法添加这些依赖项吗

    你的直觉是正确的:)是的,有更好的方法。我个人建议只在父
    pom.xml
    文件中保留对arquillian的依赖关系,然后所有子模块都将继承此依赖关系

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.jboss.arquillian</groupId>
                <artifactId>arquillian-bom</artifactId>
                <version>1.1.5.Final</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
    
    org.jboss.arquillian
    导游