Это все от лукавого. JavaEE контейнер изначально не был задуман ни как тестиуемый ни как удобоваримый для разработки. От цикла write-package-deploy-test спасет лишь JRebel, и то в редких случаях. Arquillian по сути автоматизирует этот цикл, но делает это также медленно: ресурсы запаковываются, а потом распаковываются на сервере. К тому же если Вы хотите добавить в деплоймент jar из maven dependency, включается резольвинг, который тормозит безбожно.
Что мы реально хотим:
— возможность пускать контейнер в embedded режиме (здравствуй, дебаг!)
— конфигурировать ресурсы контейнера (jndi, datasources, jms, etc...) программно прямо при старте, а не хранить черт знает где 10 различных конфигураций в xml и пускать свой сервер для каждого случая
— автоматический деплой приложения при запуске контейнера из текущего classpath без необходимости упаковки в jar
— конфигурировать программно classpath (для мокирования) и ресурсы приложения (дескрипторы xml)
— возможность тестирования и инъектирования теста в окружение контейнера
Все это умеет с некоторыми косяками Apache OpenEJB. Первый проект делал на JBoss + Arquillian, вторые два разрабатывал на OpenEJB (в продакшне все проекты деплоились на Weblogic) — производительность разработки возросла в несколько раз. Из недостатков: есть кое-какие баги, много приходится допиливать самому, версия 5.0 с JEE7 до сих пор еще в SNAPSHOT-ах.
Я с Gradle-ом знаком крайне поверхностно, но так понимаю, что основная проблема заключается в том, чтобы импортировать Arquillian-овский BOM. Gradle, судя по всему, не умеет это делать из коробки, но можно попробовать подключить dependency management plugin, тогда импортировать BOM можно будет так:
Автоматизация тестирования Java EE веб-сервисов с помощью SoapUI и Arquillian