Технический совет № 34 объяснил, как создать тестируемое приложение Java EE 7. Это полезно, если вы запускаете новое приложение. Но что, если у вас уже есть приложение и Arquillian-включить его?
Для этого пригодится дополнение Forge и Forge-Arquillian . Вот как я добавил поддержку Arquillian в javaee7-simple-sample .
Посмотрим, что было сделано!
-   Скачайте и установите Forge.  Вы можете скачать ZIP и разархивировать в вашем любимом месте, или просто используйте следующую команду, которая сделает это за вас:
01020304050607080910111213141516171819202122Downloads> curl http://forge.jboss.org/sh | sh% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed1002725027250046410--:--:-- --:--:-- --:--:--4642/usr/bin/javaDownloading Forge########################################################################100.0%Archive: /Users/arungupta/.forge/forge_installer.zipcreating: /Users/arungupta/forge/forge-distribution-2.12.2.Final/creating: /Users/arungupta/forge/forge-distribution-2.12.2.Final/img/. . .If you have not yet seen the Forge built-in commands, you may either press TAB to see a list of the currently available commands, or get a more descriptive list by typing:$ command-listThen to get started - see the docs athttp://forge.jboss.org/documentationConsider installing Git and Maven3.1+ (both optional)Restart Terminal to use forge.
-   Клонировать репозиторий simple-javaee7-sample :
1git clone https://github.com/javaee-samples/javaee7-simple-sample.git
-  Измените каталог на javaee7-simple-sampleи запустите Forge:0102030405060708091011javaee7-simple-sample> ~/tools/forge-distribution-2.12.2.Final/bin/forgeUsing Forge at /Users/arungupta/tools/forge-distribution-2.12.2.Final_____| ___|__ _ __ __ _ ___| |_ / _ \| `__/ _` |/ _ \ \\| _| (_) | | | (_| | __///|_| \___/|_| \__, |\___||__/JBoss Forge, version [2.12.2.Final ] - JBoss, by Red Hat, Inc. [ http://forge.jboss.org ]
-   Установите дополнение Forge-Arquillian:
01020304050607080910111213141516[javaee7-simple-sample]$ addon-install-from-git --url https://github.com/forge/addon-arquillian.git***INFO*** Installing Addon from Git [0/4] ...***INFO*** Installing Addon from Git:Cloning repository in /var/folders/3v/syxsk5zx3yqd_8g9m206py_h0000gn/T/1416131293813-0[0/4] ...***INFO*** Installing Addon from Git:Installing project into local repository [1/4] ...[INFO] Scanningforprojects...[INFO][INFO] ------------------------------------------------------------------------[INFO] Building Arquillian Forge Addon1.0.0-SNAPSHOT[INFO] ------------------------------------------------------------------------[INFO]. . .Downloading: http://repo1.maven.org/maven2/org/jboss/forge/addon/maven-impl-projects/2.12.2.Final/maven-impl-projects-2.12.2.Final.pomDownloaded: http://repo1.maven.org/maven2/org/jboss/forge/addon/maven-impl-projects/2.12.2.Final/maven-impl-projects-2.12.2.Final.pom (4 KB at 16.9 KB/sec)***SUCCESS*** Addon org.arquillian.forge:arquillian-addon,1.0.0-SNAPSHOT was installed successfully.
-   Сконфигурируйте дополнение Arquillian и установите адаптер WildFly:
12345678[javaee7-simple-sample]$ arquillian-setup --testFramework junit --containerAdapter wildfly-remoteDownloading: http://repo1.maven.org/maven2/org/wildfly/wildfly-arquillian-container-remote/maven-metadata.xmlDownloaded: http://repo1.maven.org/maven2/org/wildfly/wildfly-arquillian-container-remote/maven-metadata.xml (702 B at 4.2 KB/sec)***SUCCESS*** Arquillian setup complete***SUCCESS*** Installed Arquillian1.1.5.Final***SUCCESS*** Installed junit***SUCCESS*** Installed Arquillian Container WildFly Remote8.x***SUCCESS*** Installed Arquillian Container WildFly Remote8.x dependenciesСписок адаптеров разнообразен, как показано: 010203040506070809101112glassfish-embedded-3.1jetty-embedded-6.1tomee-remoteglassfish-managed-3.1jetty-embedded-7was-embedded-8glassfish-remote-3.1openejb-embedded-3.1was-remote-7jbossas-embedded-6openejb-embedded-4was-remote-8jbossas-managed-4.2openshift-express weld-ee-embedded-1.1jbossas-managed-5.1openwebbeans-embedded-1weld-se-embedded-1jbossas-managed-6tomcat-embedded-6weld-se-embedded-1.1jbossas-managed-7tomcat-embedded-7wildfly-managedjbossas-remote-4.2tomcat-managed-5.5wildfly-remotejbossas-remote-5tomcat-managed-6wls-remote-10.3jbossas-remote-5.1tomcat-managed-7jbossas-remote-6tomcat-remote-6Это позволяет вам настроить контейнер по вашему выбору. Это добавит следующий профиль в ваш «pom.xml»: 010203040506070809101112131415161718192021222324<profile><id>arquillian-wildfly-remote</id><build><plugins><plugin><artifactid>maven-surefire-plugin</artifactid><version>2.14.1</version><configuration><systempropertyvariables><arquillian.launch>arquillian-wildfly-remote</arquillian.launch></systempropertyvariables></configuration></plugin></plugins></build><dependencies><dependency><groupid>org.wildfly</groupid><artifactid>wildfly-arquillian-container-remote</artifactid><version>8.1.0.Final</version><scope>test</scope></dependency></dependencies></profile>Профиль включает зависимость «wildfly-arquillian-container-remote», которая позволяет Arquillian подключаться к WildFly, работающему в удаленном «режиме». Хост по умолчанию — «localhost», а порт — «8080». «Maven-surefire-plugin» передается свойству конфигурации «arquillian.launch» со значением «arquillian-wildfly-remote». Это соответствует квалификатору «container» в сгенерированном «arquillian.xml». «Arquillian.xml» используется для определения параметров конфигурации для определения местоположения или связи с контейнером. В нашем случае WildFly работает на хосте и порте по умолчанию, поэтому нет необходимости обновлять этот файл. Важно отметить, что квалификатор «container» совпадает со значением квалификатора «arquillian.launch». 1234<!--?xml version="1.0" encoding="UTF-8" standalone="no"?--><arquillianxmlns="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"><containerqualifier="arquillian-wildfly-remote"></container></arquillian>Этот файл. Более подробная информация об этом файле конфигурации доступна здесь . 
-   Пока не исправлен FORGE-2148 , вам также необходимо добавить реализацию JAX-RS, а также соответствующего поставщика JAXB.  Этот тест использует RESTEasy, поэтому необходимо добавить следующее:
010203040506070809101112<dependency><groupid>org.jboss.resteasy</groupid><artifactid>resteasy-client</artifactid><version>3.0.5.Final</version><scope>test</scope></dependency><dependency><groupid>org.jboss.resteasy</groupid><artifactid>resteasy-jaxb-provider</artifactid><version>3.0.5.Final</version><scope>test</scope></dependency>Это можно добавить либо в профиль, либо в зависимости от проекта. 
И теперь вы готовы к тестированию!
Скачайте WildFly 8.1 и разархивируйте. Запустите сервер как:
| 1 | ./bin/standalone.sh | 
Запустите тесты:
| 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 | javaee7-simple-sample> mvn test[INFO] Scanning forprojects...[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 0resource[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 1resource[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.PersonTestNov 16, 20141:53:57PM org.xnio.Xnio INFO: XNIO version 3.2.0.Beta4Nov 16, 20141:53:57PM org.xnio.nio.NioXnio INFO: XNIO NIO Implementation Version 3.2.0.Beta4Nov 16, 20141:53:57PM org.jboss.remoting3.EndpointImpl INFO: JBoss Remoting version (unknown)Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.963secResults :Tests run: 2, Failures: 0, Errors: 0, Skipped: 0[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 4.403s[INFO] Finished at: 2014-11-16T13:53:59+02:00[INFO] Final Memory: 17M/309M[INFO] ------------------------------------------------------------------------ | 
И теперь вы уже включили Arquillian в свой существующий проект!
Подайте любые проблемы здесь .
Наслаждайтесь!
| Ссылка: | Включите Arquillian в существующем проекте Java EE, используя Forge Addon от нашего партнера по JCG Аруна Гупта из блога Miles to go 2.0… . |