用Arquillian测试JavaEE微服务
我是arquillian的新手 我们在Wildfly 10.1.0下构建了一个微服务。我们开发了一个依赖于SessionBean的“WAR”。SessionBean被开发为一个“JAR”。SessionBean的接口被开发为一个额外的“JAR”,并添加为一个“WildFly模块”。我的问题是我必须用arquillian构建一个测试。我使用的是托管wildfly,但我的错误是在arquillian的“test.war”中找不到接口类 如何从arquillian开发“test.war”,并依赖于WildFly模块 myTestClass用Arquillian测试JavaEE微服务,java,ejb,wildfly,jboss-arquillian,Java,Ejb,Wildfly,Jboss Arquillian,我是arquillian的新手 我们在Wildfly 10.1.0下构建了一个微服务。我们开发了一个依赖于SessionBean的“WAR”。SessionBean被开发为一个“JAR”。SessionBean的接口被开发为一个额外的“JAR”,并添加为一个“WildFly模块”。我的问题是我必须用arquillian构建一个测试。我使用的是托管wildfly,但我的错误是在arquillian的“test.war”中找不到接口类 如何从arquillian开发“test.war”,并依赖于Wi
package com.example.controller.dataConnector;
import javax.inject.Inject;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import com.example.controller.global.Global;
import com.example.ejb.interfaces.SessionBeanLogic_Interface;
import com.example.model.dataModel1;
import com.example.model.dataModel2;
@RunWith(Arquillian.class)
public class dataConnectorTest
{
@Inject
dataConnector dataConnector;
@Deployment
public static JavaArchive createShrinkWrap()
{
return ShrinkWrap.create(JavaArchive.class).addClasses(dataConnector.class, Global.class, dataModel1.class, dataModel2.class, SessionBeanLogic_Interface.class).addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
}
@Test
public void should_say_hello()
{
Assert.assertEquals("Testversuch", dataConnector.getStr_Value());
System.out.println(siebeldaten.getStr_Value());
}
}
MyArquillian.xml
<?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="wildfly10" default="true">
<configuration>
<property name="jbossHome">F:/jboss/wildfly-10.1.0.Final</property>
</configuration>
</container>
</arquillian>
F:/jboss/wildfly-10.1.0.Final
myPOM.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>DataFrontend</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>DataFrontend</name>
<properties>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.arquillian</groupId>
<artifactId>arquillian-bom</artifactId>
<version>1.1.12.Final</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>EJB_Logic_Interface</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>6.0</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.2.14</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.junit</groupId>
<artifactId>arquillian-junit-container</artifactId>
</dependency>
<dependency>
<groupId>org.wildfly.arquillian</groupId>
<artifactId>wildfly-arquillian-container-managed</artifactId>
<version>2.0.0.Final</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<compilerArguments>
<endorseddirs>${endorsed.dir}</endorseddirs>
</compilerArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ejb-plugin</artifactId>
<version>2.3</version>
<configuration>
<ejbVersion>3.1</ejbVersion>
<archive>
<manifestEntries>
<Dependencies>com.example.Interfaces.Logic_Interface, com.example.gson.280</Dependencies>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<outputDirectory>${endorsed.dir}</outputDirectory>
<silent>true</silent>
<artifactItems>
<artifactItem>
<groupId>javax</groupId>
<artifactId>javaee-endorsed-api</artifactId>
<version>7.0</version>
<type>jar</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<url>http://repository.primefaces.org/</url>
<id>PrimeFaces-maven-lib</id>
<layout>default</layout>
<name>Repository for library PrimeFaces-maven-lib</name>
</repository>
</repositories>
</project>
4.0.0
com.example
数据前端
1.0-快照
战争
数据前端
${project.build.directory}/project
UTF-8
org.jboss.arquillian
阿奎利安bom
1.1.12.最终版本
进口
聚甲醛
${project.groupId}
EJB\u逻辑接口
${project.version}
org.primefaces
素面
6
com.sun.faces
jsf impl
2.2.14
朱尼特
朱尼特
4.12
爪哇
javaeewebapi
7
假如
com.google.code.gson
格森
2.8.0
org.jboss.arquillian.junit
arquillian junit容器
org.wildfly.arquillian
wildfly arquillian容器管理
2.0.0.1决赛
org.apache.maven.plugins
maven编译器插件
3.1
1.8
1.8
${annowed.dir}
org.apache.maven.plugins
maven战争插件
2.3
假的
org.apache.maven.plugins
maven ejb插件
2.3
3.1
com.example.Interfaces.Logic_Interface,com.example.gson.280
org.apache.maven.plugins
maven依赖插件
2.6
验证
复制
${annowed.dir}
真的
爪哇
javaee认可的api
7
罐子
http://repository.primefaces.org/
PrimeFacesMaven库
违约
库PrimeFaces maven lib的存储库
您需要将dataConnector
实现的接口添加到包覆面提取。创建(…).addClasses(…)
,而不仅仅是您的dataConnector
类
Arquillian使用在
@Deployment
注释方法中显式添加的任何内容,它不会从maven自动解析依赖项。“但是我犯了一个错误,在Arquillian的“test.war”中找不到接口类。”。请在问题中添加完整的错误。如果一个微服务包含一个巨大的应用服务器,完整的stacktrace肯定会帮助我们解决这个问题?