繁体   English   中英

Maven:如何设置maven以单独运行单元测试和集成测试

[英]Maven: How can I setup maven to run unit test and integration test separately

我有一个关于maven的问题。

我有单元测试,文件名以* Test和集成测试结尾,文件名以* IT结尾。

我的理解是surefire将运行单元测试,failafe将运行集成测试。

当我运行:mvn clean install

运行单元测试和集成测试。

当我跑:

mvn验证

这两个测试也都运行了。

无论如何我可以配置maven,这样当我使用:mvn clean install时,只运行单元测试。 当我使用mvn verify时,只运行集成测试?

我的POM构建部分如下:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>failsafe-maven-plugin</artifactId>
            <version>2.4.3-alpha-1</version>
            <executions>
                <execution>
                    <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>

    <resources>
        <resource>
            <directory>src/main/resources</directory>
        </resource>
    </resources>
</build>

非常感谢

如前所述这里 ,按照惯例,假设集成测试被命名为TestNameIT.java和单元测试中TestNameUT.java ,您可以使用includes过滤集成测试或单元测试。

使用Maven进行单元集成和系统测试设置

我创建了一个GitHub存储库,您可以在其中看到可能的maven安装程序。 我在这里发布这个是因为我想与其他人分享我对这个设置的看法,我认为当有人搜索关于使用maven进行测试的时候可以找到这个

存储库包含一个功能齐全的设置。

GitHub存储库: https//github.com/StefanHeimberg/maven3-unit_integration_systemtest-setup

特征

  • Maven 3.3
  • 用于数据库迁移生产和系统测试数据库的飞路
  • Arquillian用于集成测试执行
  • Mockito进行单元测试

单元测试

  • 仅测试了一个类/业务功能
  • 没有数据库
  • 没有容器
  • 最小的可能单位进行测试
  • 对其他类的依赖是Mocked。 (的Mockito)
  • 测试位于测试类所在单元所在工件的src / test

集成 - 测试

  • 多个类/业务功能一起编排和测试
  • 每个TestCase的内存数据库
  • EE容器。 所有集成测试都启动一次
  • Arquillian远程管理野生蝇
  • arquillian war中的每个TestCase的数据源部署(* -ds.xml)
  • DB表是从JPA DDL生成的(hibernate.hbm2ddl.auto = create-drop)
  • Arquillian Deployments仅包含测试用例本身的类neede
  • 在@Test或@Before方法中手动加载Testdata ...(测试数据构建器......)
  • 测试与其他代码分开

系统测试

  • 完整的Wildfly部署最终的WAR / EAR文件。
  • 通过* .cli命令行命令进行容器配置
  • 读取因为我们需要使用的数据库(hibernate.hbm2ddl.auto = validate)
  • 使用maven-flyway-plugin部署之前的数据库设置
  • Testdata加载了sql-maven-plugin
  • 测试与其他代码分开

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM