2017-03-16 2 views
1

주장 우리는 대략 보스 제이보스 (10)는 로컬 호스트

이 Arquillian의 새 버전과 함께

과 동일 제이보스 EAP 7로 전환, 지금은 ' 모든 것을 시험하려고 해요.

테스트는 로컬 JBoss에서 실행되는 로컬 컴퓨터에서 작동합니다. 그러나 JBoss 서버 (다른 컴퓨터)에 연결해야하는 빌드 서버에서 실행하려고하면 테스트가 실패합니다.

테스트 후 WAR가 배포 및 제거되었다는 것을 서버 로그에서 볼 수 있습니다. 그러나 시험하는 동안, Arquillian 로컬 호스트에 연결하고 싶어 : 여기

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 10.294 sec <<< FAILURE! - in itest.com.mydomain.esv.dds.bo.DDSDokumentI18NTest 
testI18NKeys(itest.com.mydomain.esv.dds.bo.DDSDokumentI18NTest) Time elapsed: 1.024 sec <<< ERROR! 
java.lang.IllegalStateException: Error launching test itest.com.mydomain.esv.dds.bo.DDSDokumentI18NTest public void com.mydomain.esv.util.testing.i18n.I18NTestBase.testI18NKeys() 
... 
Caused by: java.lang.IllegalStateException: Error launching request at http://localhost:8080/dds-adapter-api-itest/ArquillianServletRunner?outputMode=serializedObject&className=itest.com.mydomain.esv.dds.bo.DDSDokumentI18NTest&methodName=testI18NKeys. No result returned 
    at org.jboss.arquillian.protocol.servlet.ServletMethodExecutor.executeWithRetry(ServletMethodExecutor.java:139) 
    at org.jboss.arquillian.protocol.servlet.ServletMethodExecutor.invoke(ServletMethodExecutor.java:99) 
    at org.jboss.arquillian.container.test.impl.execution.RemoteTestExecuter.execute(RemoteTestExecuter.java:109) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) 

나의 arquillian.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"> 
    <!-- Force the use of the Servlet 3.0 protocol with all containers, as it is the most mature --> 
    <defaultProtocol type="Servlet 3.0" /> 

    <!-- Example configuration for a remote JBoss EAP instance --> 
    <container qualifier="jboss-remote" default="true"> 
    <configuration> 
     <property name="managementAddress">foobar.mydomain.com</property> 
     <property name="managementPort">9990</property> 
     <property name="username">admin</property> 
     <property name="password">password</property> 
    </configuration> 
    </container> 
</arquillian> 

이 내 관련 의존성 (우리는 제이보스 EAP 7.0.4을 사용하는)입니다 :

@RunWith(Arquillian.class) 
public class DDSDokumentI18NTest extends DDSArquillianI18NFieldEnumSupplierTest { 

    /** 
    * {@inheritDoc} 
    */ 
    @Override 
    protected FieldEnumSupplier getFieldEnumSupplier() { 
    return new DDSDokument(); 
    } 

} 
: 여기
<dependency> 
    <groupId>org.jboss.bom</groupId> 
    <artifactId>jboss-eap-javaee7-with-tools</artifactId> 
    <version>7.0.4.GA</version> 
    <type>pom</type> 
    <scope>import</scope> 
</dependency> 


<dependency> 
    <groupId>org.jboss.shrinkwrap.resolver</groupId> 
    <artifactId>shrinkwrap-resolver-depchain</artifactId> 
    <type>pom</type> 
    <scope>test</scope> 
    <version>2.2.2</version> 
    <exclusions> 
    <exclusion> 
     <groupId>javax.enterprise</groupId> 
     <artifactId>cdi-api</artifactId> 
    </exclusion> 
    <exclusion> 
     <groupId>javax.inject</groupId> 
     <artifactId>javax.inject</artifactId> 
    </exclusion> 
    </exclusions> 
</dependency> 
<dependency> 
    <groupId>org.jboss.arquillian.junit</groupId> 
    <artifactId>arquillian-junit-container</artifactId> 
    <version>1.1.11.Final</version> 
    <scope>test</scope> 
</dependency> 
<dependency> 
    <groupId>org.wildfly.arquillian</groupId> 
    <artifactId>wildfly-arquillian-container-remote</artifactId> 
    <version>2.0.0.Final</version> 
    <scope>test</scope> 
</dependency> 
<dependency> 
    <groupId>org.jboss.arquillian.protocol</groupId> 
    <artifactId>arquillian-protocol-servlet</artifactId> 
    <version>1.1.11.Final</version> 
    <scope>test</scope> 
</dependency> 

는 테스트 클래스의

그리고 기본 클래스 : 나는 잘못

@RunWith(Arquillian.class) 
public abstract class DDSArquillianI18NFieldEnumSupplierTest extends FieldEnumSupplierI18NTestBase<I18NService> { 

    @Inject 
    private I18NService i18nService; 

    /** 
    * Creates the deployment for the test. 
    * @return the deployment 
    */ 
    @Deployment 
    public static Archive<?> createDeployment() { 
    return DDSArquillianIntegrationTest.createCoreDeployment(); 
    } 

    /** 
    * {@inheritDoc} 
    */ 
    @Override 
    protected Map<String, String> getI18NKeysAndValues() { 
    final Map<I18NLanguage, Map<String, String>> values = getService().getValues(DDSArquillianI18NTest.I18N_PATTERNS); 
    return values.get(I18NLanguage.GERMAN); 
    } 

    /** 
    * {@inheritDoc} 
    */ 
    @Override 
    public I18NService getService() { 
    return this.i18nService; 
    } 

} 

을 뭐하는 거지?

+0

컨테이너 어댑터 종속성은 무엇입니까? –

+0

관련 도움을 주셔서 감사합니다. – eerriicc

+0

전체 그림은 테스트 클래스를 보는 것이 좋을 것입니다. –

답변

0

답변은 here입니다.

arquillian.xml에 호스트와 포트를 구성해야합니다.

<container qualifier="wildfly" default="true"> 
    <protocol type="Servlet 3.0"> 
     <property name="host">test.example.com</property> 
     <property name="port">8181</property> 
    </protocol> 
</container>