Я создал новый проект, который будет запускать только интеграционный тест с
- плагин для ушей maven
- maven-failsafe-plugin
- плагин maven-embedded-glassfish
Когда я устанавливаю упаковку для ушей, создается ушной файл, запускается glassfish, но тесты игнорируются, и я получаю следующее сообщение
[отказоустойчивый: интеграционный-тест] Нет тестов для запуска.
и стеклянная рыба не раскрывается
[embedded-glassfish: undeploy]
17.08.2012 10:08:17 AM PluginUtil doUndeploy
ИНФОРМАЦИЯ: Deployer = com.sun.enterprise.admin.cli.embeddable.DeployerImpl@105f0f87
17.08.2012 10:08:17 AM com.sun.enterprise.loader.ASURLClassLoader $ SentinelInputStream
отчет
ВНИМАНИЕ: входной поток был завершен или принудительно закрыт без явного
закрытия ; создание экземпляра потока сообщается в следующей трассировке стека
java.lang.Throwable
в com.sun.enterprise.loader.ASURLClassLoader $ SentinelInputStream.
(ASURLClassLoader.java:1230)
Когда я ставлю упаковку в банку, я получаю
Выполняется packageName.MyServiceTest
17.08.2012 10:09:34 com.sun.enterprise.v3.server.CommonClassLoaderServiceImpl
findDerbyClient
ИНФОРМАЦИЯ: Не удается найти файл jar клиента javadb, derby jdbc драйвер не будет доступен
по умолчанию.
org.omg.CORBA.COMM_FAILURE: FINE: IOP00410001: Ошибка подключения: socketType:
IIOP_CLEAR_TEXT; имя хоста: localhost; порт: 3700 vmcid: дополнительный код OMG: 1
завершено: Нет
в sun.reflect.GeneratedConstructorAccessor27.newInstance (неизвестный источник)
и стеклянная рыбка не запускается
Я знаю, что он должен что-то делать с жизненным циклом Maven, что не позволяет мне создавать файл Ear, запускать встроенный сервер Glassfish и запускать интеграционные тесты в том же проекте.
Может кто-нибудь предложить мне решение? Я пытаюсь создать файл уха только с проектом объектов EJB и Business и развернуть его на встроенном сервере Glassfish для запуска теста интеграции с maven-failsafe-plugin вместо развертывания файла уха, созданного родительским pom.xml, который добавляет UI и другие проекты в файл уха.
Вот мой файл pom.xml
http://maven.apache.org/xsd/maven-4.0.0.xsd "> 4.0.0
<parent>
<groupId>company.MyProject</groupId>
<artifactId>MyProject</artifactId>
<version>3.8.1-SNAPSHOT</version>
</parent>
<artifactId>MyProject-integration-test</artifactId>
<packaging>jar</packaging>
<name>MyProject Integration Tests</name>
<properties>
<ear-final-name>MyProject-integration-test-${project.version}</ear-final-name>
</properties>
<dependencies>
<dependency>
<groupId>org.glassfish.extras</groupId>
<artifactId>glassfish-embedded-all</artifactId>
<version>3.1.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.concordion</groupId>
<artifactId>concordion</artifactId>
<version>1.4.2</version>
<scope>test</scope>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.concordion</groupId>
<artifactId>concordion-extensions</artifactId>
<version>1.0.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>MyProject-ejb</artifactId>
<version>${project.version}</version>
<type>ejb</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words-jdk15</artifactId>
<version>${aspose.libraryVersion}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>hibernate-entitymanager</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.4.0.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>3.3.2.GA</version>
</dependency>
<dependency>
<groupId>hibernate-annotations</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>3.4.0.GA</version>
</dependency>
<dependency>
<groupId>hibernate-commons-annotations</groupId>
<artifactId>hibernate-commons-annotations</artifactId>
<version>3.4.0.GA</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.1.0.5.0</version>
</dependency>
<dependency>
<groupId>ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.6</version>
</dependency>
<dependency>
<groupId>org-apache-commons-logging</groupId>
<artifactId>org-apache-commons-logging</artifactId>
<version>1.1.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<version>2.5</version>
<configuration>
<version>5</version>
<displayName>MyProject</displayName>
<defaultLibBundleDir>lib</defaultLibBundleDir>
<finalName>${ear-final-name}</finalName>
<name>MyProject-integration-test</name>
<modules>
<ejbModule>
<groupId>company.MyProject</groupId>
<artifactId>MyProject-ejb</artifactId>
<bundleFileName>MyProject-ejb.jar</bundleFileName>
</ejbModule>
<jarModule>
<groupId>company.MyProject</groupId>
<artifactId>MyProject-business-entities</artifactId>
<bundleFileName>MyProject-business-entities-3.8.1-SNAPSHOT.jar</bundleFileName>
</jarModule>
<jarModule>
<groupId>company.MyProject</groupId>
<artifactId>MyProject-util</artifactId>
<bundleFileName>MyProject-util-3.8.1-SNAPSHOT.jar</bundleFileName>
</jarModule>
</modules>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.12</version>
<executions>
<execution>
<id>failsafe-integration-tests</id>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
<execution>
<id>failsafe-verify</id>
<phase>verify</phase>
<goals>
<goal>verify</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.glassfish</groupId>
<artifactId>maven-embedded-glassfish-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<goalPrefix>embedded-glassfish</goalPrefix>
<autoDelete>true</autoDelete>
<app>${basedir}/target/MyProject-integration-test-${project.version}.ear</app>
<port>8080</port>
<configFile>src/test/resources/glassfish/config/domain.xml</configFile>
</configuration>
<executions>
<execution>
<id>start-glassfish</id>
<phase>pre-integration-test</phase>
<goals>
<goal>start</goal>
</goals>
</execution>
<execution>
<id>glassfish-deploy</id>
<phase>pre-integration-test</phase>
<goals>
<goal>deploy</goal>
</goals>
</execution>
<execution>
<id>glassfish-undeploy</id>
<phase>post-integration-test</phase>
<goals>
<goal>undeploy</goal>
</goals>
</execution>
<execution>
<id>stop-glassfish</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>