arquillian-remote

2014-09-10T00:00:00+00:00 Java

arquillian-remoteなパッケージを使えば、既存するサーバーに動的にデプロイしてテストしたり出来る模様。基本的には前回の「JAX-RS+CDIをArquillianでテスト」をそのまま使って、arquillian-remoteなパッケージを使ってテスト出来るようにする

build.gradleを修正

apply plugin: "java"
apply plugin: "war"
apply plugin: "eclipse"

repositories {
    mavenCentral()
}

dependencies {
    compile "javax:javaee-api:7.0"

    testCompile "junit:junit:+"
    testCompile "org.hamcrest:hamcrest-all:+"
    testCompile "org.jboss.arquillian.junit:arquillian-junit-container:+"

    providedCompile "org.glassfish.jersey.containers:jersey-container-servlet:2.+"
    providedRuntime "org.jboss.arquillian.container:arquillian-glassfish-remote-3.1:+"
}

な感じでarquillian-glassfish-remoteを使う。

arquillian.xmlを修正

場合によっては修正しなくてもイケるかもしれないけど、起動しているglassfishの管理ポートやユーザーに関わる設定が行われている場合においてはそういう所の情報を設定しておかないといけない。これはもちろん使うパッケージによっても変わってくると思うけど、glassfish-remoteな場合には https://docs.jboss.org/author/display/ARQ/GlassFish+3.1+-+Remoteな所に詳細が書いてあるのでそれを参考にして設定すりゃいい

<?xml version="1.0" encoding="UTF-8" ?>
<arquillian
    xmlns="http://jboss.org/schema/arquillian"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd">

    <container qualifier="glassfish-remote" default="true">
        <configuration>
            <property name="adminPort">14848</property>
        </configuration>
    </container>
</arquillian>

今回使っているglassfishの管理ポートが14848な為、adminPortにそれを指定する。恐らくはデフォルトだと4848を使うかと

修正はこれだけ。あとは使うサーバー(今回だとglassfish)を起動しておいてテストを実行すれば良いだけ。ちなみにサーバーに接続できない場合には

org.jboss.arquillian.container.spi.client.container.LifecycleException: Could not connect to DAS on: http://localhost:14848

のようなエラーになる

arquillian-managed JAX-RS+CDIをArquillianでテスト