Статьи

Тесты Arquillian на экземпляре WildFly, размещенном на OpenShift

Технический совет № 54 объяснил, как включить Arquillian для существующего проекта Java EE. В этом совете тесты выполнялись на локально установленном сервере WildFly. Будет ли работать тот же адаптер, если этот экземпляр WildFly работает в OpenShift? Нет!

Потому что ограничения безопасности и требования PaaS, в отличие от xlocalhost, различны. Давайте посмотрим, что требуется для запуска наших тестов в javaee7-simple-sample для экземпляра WildFly, размещенного в OpenShift.

Давайте начнем!

  1. Как объясняется в техническом совете № 52 , создайте приложение WildFly в OpenShift, как показано ниже:
    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    workspaces> <strong>rhc app-create mywildfly jboss-wildfly-8</strong>
    Application Options
    -------------------
    Domain:     milestogo
    Cartridges: jboss-wildfly-8
    Gear Size:  default
    Scaling:    no
     
    Creating application 'mywildfly' ... Artifacts deployed: ./ROOT.war
    done
     
      WildFly 8 administrator added.  Please make note of these credentials:
     
       Username: adminMYtMTDb
       Password: tq1K-QYLFgBD
        
       run 'rhc port-forward mywildfly' to access the web admin area on port 9990.
     
    Waiting for your DNS name to be available ... done
     
    Cloning into 'mywildfly'...
    Warning: Permanently added the RSA host key for IP address '54.163.64.193' to the list of known hosts.
     
    Your application 'mywildfly' is now available.
     
      URL:        http://mywildfly-milestogo.rhcloud.com/
      SSH to:     [email protected]
      Git remote: ssh://54699516ecb8d41cb8000016@mywildfly-milestogo.rhcloud.com/~/git/mywildfly.git/
      Cloned to:  /Users/arungupta/workspaces/mywildfly
     
    Run 'rhc show-app mywildfly' for more details about your app.

    Запишите имя пользователя ssh из журнала. Это часть перед @ в значении, соответствующем SSH to .

  2. До разрешения FORGEPLUGINS-177 нам нужно вручную добавить профиль maven и предоставить информацию о конфигурации контейнера в «arquillian.xml». Добавьте следующий <profile> в «pom.xml»:
    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <profile>
        <id>arquillian-wildfly-openshift</id>
        <build>
            <plugins>
                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.14.1</version>
                    <configuration>
                        <systemPropertyVariables>
                            <arquillian.launch>arquillian-wildfly-openshift</arquillian.launch>
                        </systemPropertyVariables>
                    </configuration>
                </plugin>
            </plugins>
        </build>
        <dependencies>
            <dependency>
                <groupId>org.jboss.arquillian.container</groupId>
                <artifactId>arquillian-openshift</artifactId>
                <version>1.0.0.Final-SNAPSHOT</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </profile>

    Это использует arquillian-openshift и ссылается на arquillian-wildfly-openshift которая будет сопоставлена ​​с соответствующим контейнером в «arquillian.xml». Вот как выглядит обновленный «arquillian.xml»:

    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
        <container qualifier="arquillian-wildfly-remote"/>
        <container qualifier="arquillian-wildfly-openshift">
            <configuration>
                <property name="namespace">milestogo</property>
                <property name="application">mywildfly</property>
                <property name="libraDomain">rhcloud.com</property>
                <property name="sshUserName">54699516ecb8d41cb8000016</property>
                <property name="login">[email protected]</property>
                <property name="deploymentTimeoutInSeconds">300</property>
                <property name="disableStrictHostChecking">true</property>
            </configuration>
        </container>
    </arquillian>

    Обратите внимание на новый <container> с квалификатором arquillian-wildfly-openshift . Он предоставляет информацию о том, где находится сервер и некоторые другие свойства конфигурации. sshUserName свойства sshUserName должно совпадать с ранее созданным экземпляром WildFly.

  3. Вот и все, теперь вы можете запустить тест для экземпляра WildFly в OpenShift:
    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    javaee7-simple-sample> mvn test -Parquillian-wildfly-openshift
    [INFO] Scanning for projects...
    [INFO]                                                                        
    [INFO] ------------------------------------------------------------------------
    [INFO] Building helloworld 1.0-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ helloworld ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] Copying 0 resource
    [INFO]
    [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ helloworld ---
    [INFO] Nothing to compile - all classes are up to date
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ helloworld ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] Copying 1 resource
    [INFO]
    [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ helloworld ---
    [INFO] Nothing to compile - all classes are up to date
    [INFO]
    [INFO] --- maven-surefire-plugin:2.14.1:test (default-test) @ helloworld ---
    [INFO] Surefire report directory: /Users/arungupta/workspaces/javaee7-simple-sample/target/surefire-reports
     
    -------------------------------------------------------
     T E S T S
    -------------------------------------------------------
    Running org.javaee7.sample.PersonTest
    Nov 17, 2014 11:18:24 AM org.jboss.arquillian.container.openshift.OpenShiftContainer start
    INFO: Preparing Arquillian OpenShift container at http://mywildfly-milestogo.rhcloud.com
    Nov 17, 2014 11:19:19 AM org.jboss.arquillian.container.openshift.OpenShiftRepository push
    INFO: Pushed to the remote repository ssh://54699516ecb8d41cb8000016@mywildfly-milestogo.rhcloud.com/~/git/mywildfly.git/
    Nov 17, 2014 11:20:56 AM org.jboss.arquillian.container.openshift.OpenShiftRepository push
    INFO: Pushed to the remote repository ssh://54699516ecb8d41cb8000016@mywildfly-milestogo.rhcloud.com/~/git/mywildfly.git/
    Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 152.653 sec
    Nov 17, 2014 11:20:56 AM org.jboss.arquillian.container.openshift.OpenShiftContainer stop
    INFO: Shutting down Arquillian OpenShift container at http://mywildfly-milestogo.rhcloud.com
     
    Results :
     
    Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
     
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 05:46 min
    [INFO] Finished at: 2014-11-17T11:24:09+02:00
    [INFO] Final Memory: 12M/309M
    [INFO] ------------------------------------------------------------------------

Наслаждайтесь!