Arquillian是一个针对JVM高度可扩展的新型测试平台。开发者可以用它对Java中间件方便地进行自动化集成测试、功能测试和验收测试。

  真实测试
  Mock(模拟)通常是一种策略,但多数情况是在真实环境以外的情况下使用。Arquillian弃用了Mock转而使用真实的测试。这是因为Arquillian将测试加入到了运行时,可以让你访问容器资源,从而得到有意义的反馈并了解代码内部真实的运行情况。
  便捷的IDE
  为了尽可能降低学习曲线,Arquillian已经与你熟悉的工具进行了集成。你在使用JUnit编写单元测试吗?没问题,你可以利用掌握的JUnit知识进行集成测试。你更喜欢TestNG?没问题,Arquillian可以让你自由选择。你甚至可以在IDE执行单元测试时直接运行Arquillian测试。
  聚集测试资源
  通常,无论使用那种技术栈,应用程序和测试通常使用相同的编程模型。例如,Arquillian可以将部署的“上下文和依赖注入(CDI)bean”、企业级JavaBeans(EJB)组件和其它Java EE资源注入到测试中。 Arquillian还可以将编程模型进行扩展,访问其它容器的API和类似JSFUnit、Selenium这样测试框架中的隐含对象。
  控制Classpath
  大多数测试集(Test Suite)看起来一团糟,这不是你的错。测试框架在使用测试程序classpath上的类和资源时不是很规范,使得隔离测试场景变得非常困难,终导致测试集成为了怪物。Arquillian不是这样。微部署比部署整个应用要容易得多,从而使部署测试更加快速,加快“测试编码测试”开发周期。
  支持浏览器测试
  Arquillian在客户端测试和服务器测试同样表现出色。Arquillian Drone简化了Selenium服务器所有繁琐的设置,让你直接在浏览器上执行测试。Arquillian甚至将客户端和服务器测试进行了统一,典型的案例莫过于我们的JSFUnit集成。
  调试服务器
  Arquillian让你可以尝试从未有过的服务端调试。 通常,你需要打包应用程序、部署到服务器、连接调试器,通过UI交互来触发断点。现在你可以直接在测试代码或应用代码中设置断点,对测试进行调试。 你可以在熟悉的IDE中收到服务器程序触发断点的事件。试一下可以大开眼界哦!
  不限定容器
  只要为容器命名,Arquillian会对它管理。如果事实不是这样,为什么还会有这段描述呢?Arquillian支持在不同的容器间切换,从开发环境的嵌入式容器到持续集成中的独立服务器。在不同的容器上进行兼容测试,可以确保应用的可移植性。甚至可以通过这个功能测试应用在分布式环境下的表现。
  可扩展平台
  实际上,用Arquillian测试没有所谓的限制。Arquillian提供了很多扩展。如果你需要的集成还没有线程的实现,Arquillian提供了一个可扩展平台,可以方便地集成其它很棒的测试工具。
  强大的工具
  想快速熟悉Arquillian?像JBoss Forge这样的工具可以为你提供帮助。只要安装Arquillian插件,在项目中进行设置可以马上开始编写测试。你会惊讶于Arquillian和Forge的简单方便——这是下一代的企业级解决方案。