使用Arquillian和Arquillian Spring Framework Extension进行集成测试

时间:2012-08-27 14:27:26

标签: spring junit jboss-arquillian

我想建立一个集成测试基础设施。 目前我们使用maven引导tomcat,然后执行httpunit测试。 但目前的解决方案有一些缺点。

  1. 如果测试
  2. ,则最终需要手动回滚对数据库的任何更改
  3. 在集成测试中运行代码覆盖率不是直截了当(我们正在使用声纳)。
  4. 我的目标是:

    1. 允许在测试之间自动回滚(希望使用String @transaction和@rollback)
    2. 简单直接的代码覆盖率
    3. 使用@RunWith将从JUnit引导系统而不是外部
    4. 与实时servlet和javascript交互(我考虑从httpuinit切换到selenium ......)
    5. 合理的执行时间(至少不超过现有的执行时间)
    6. 上述目标对我来说是合理的,并且对许多Java / J2ee项目来说都很常见。 我正在考虑使用Arquillian和Arquillian Spring Framework Extension组件来实现这些目标。 另请参阅https://github.com/arquillian/arquillian-showcase/

      1. 有没有人有过Arquillian和Arquillian Spring Framework Extension的经历?
      2. 您能分享问题最佳做法和经验教训吗?
      3. 有人可以提出另一种方法吗?

1 个答案:

答案 0 :(得分:0)

我无法完全回答你的问题。只有一些提示

  1. 关于自动回滚。就我而言。使用liquibase在“hsqldb”或“h2”上初始化测试数据,该数据可以设置为内存模式。然后无需回滚。

  2. 对于Arquillian。这是一个很好的真实测试方法。我学到的是“ Arauillian Spring Framework Extension ”只是一个扩展。你必须绑定到像“jboss,glasshfish,tomcat”这样的特定容器来进行测试。 但我不知道如何申请不需要应用程序服务器支持的基于spring的javaSE程序。

  3. 我吸取的教训是jboss端口冲突。因为jboss-dist被设置为8080作为默认的http端口。但我们的公司代理与8080相同。所以我不能使用maven来获取jboss-dist神器。

    希望其他人可以提供更多信息。