Технический совет № 34 объяснил, как создать тестируемое приложение Java EE 7. Это полезно, если вы запускаете новое приложение. Но что, если у вас уже есть приложение и Arquillian-включить его?
Для этого пригодится дополнение Forge и Forge-Arquillian . Вот как я добавил поддержку Arquillian в javaee7-simple-sample .
Посмотрим, что было сделано!
- Скачайте и установите Forge. Вы можете скачать ZIP и разархивировать в вашем любимом месте, или просто используйте следующую команду, которая сделает это за вас:
01020304050607080910111213141516171819202122
Downloads> curl http:
//forge.jboss.org/sh | sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100
2725
0
2725
0
0
4641
0
--:--:-- --:--:-- --:--:--
4642
/usr/bin/java
Downloading Forge
########################################################################
100.0
%
Archive: /Users/arungupta/.forge/forge_installer.zip
creating: /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-list
Then to get started - see the docs at
http:
//forge.jboss.org/documentation
Consider installing Git and Maven
3.1
+ (both optional)
Restart Terminal to use forge.
- Клонировать репозиторий simple-javaee7-sample :
1
git 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/forge
Using 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] Scanning
for
projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Arquillian Forge Addon
1.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.pom
Downloaded: 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-remote
Downloading: http:
//repo1.maven.org/maven2/org/wildfly/wildfly-arquillian-container-remote/maven-metadata.xml
Downloaded: 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 Arquillian
1.1
.
5
.Final
***SUCCESS*** Installed junit
***SUCCESS*** Installed Arquillian Container WildFly Remote
8
.x
***SUCCESS*** Installed Arquillian Container WildFly Remote
8
.x dependencies
Список адаптеров разнообразен, как показано:
010203040506070809101112glassfish-embedded-
3.1
jetty-embedded-
6.1
tomee-remote
glassfish-managed-
3.1
jetty-embedded-
7
was-embedded-
8
glassfish-remote-
3.1
openejb-embedded-
3.1
was-remote-
7
jbossas-embedded-
6
openejb-embedded-
4
was-remote-
8
jbossas-managed-
4.2
openshift-express weld-ee-embedded-
1.1
jbossas-managed-
5.1
openwebbeans-embedded-
1
weld-se-embedded-
1
jbossas-managed-
6
tomcat-embedded-
6
weld-se-embedded-
1.1
jbossas-managed-
7
tomcat-embedded-
7
wildfly-managed
jbossas-remote-
4.2
tomcat-managed-
5.5
wildfly-remote
jbossas-remote-
5
tomcat-managed-
6
wls-remote-
10.3
jbossas-remote-
5.1
tomcat-managed-
7
jbossas-remote-
6
tomcat-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"?-->
<
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
=
"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 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 16 , 2014 1 : 53 : 57 PM org.xnio.Xnio INFO: XNIO version 3.2 . 0 .Beta4 Nov 16 , 2014 1 : 53 : 57 PM org.xnio.nio.NioXnio INFO: XNIO NIO Implementation Version 3.2 . 0 .Beta4 Nov 16 , 2014 1 : 53 : 57 PM org.jboss.remoting3.EndpointImpl INFO: JBoss Remoting version (unknown) Tests run: 2 , Failures: 0 , Errors: 0 , Skipped: 0 , Time elapsed: 2.963 sec Results : Tests run: 2 , Failures: 0 , Errors: 0 , Skipped: 0 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 4.403 s [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… . |