Arquillian,Runclient测试为远程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arquillian,Runclient测试为远程相关的知识,希望对你有一定的参考价值。
我想知道如何启动Arquillian rest客户端测试作为jboss远程配置文件。
这是我的测试类:
@RunAsClient
@RunWith(Arquillian.class)
public class MemberRegistrationClientTest {
@Deployment
public static Archive<?> createTestArchive() {
return ShrinkWrap.create(WebArchive.class, "test.war").addPackage(Member.class.getPackage())
.addClasses(Resources.class, MemberResourceRESTService.class, MemberRepository.class, JaxRsActivator.class)
//.addAsResource("META-INF/test-persistence.xml", "META-INF/persistence.xml")
.addAsResource("import.sql")
.addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
}
final String RESOURCE_PREFIX = "rest";
@ArquillianResource
URL deploymentUrl;
@Test
public void testGetCustomerByIdUsingClientRequest() throws Exception {
//deploymentUrl = new URL("http://localhost:8180/test/");
// GET http://localhost:8080/test/rest/customer/1
System.out.println("deployementUrl: " + deploymentUrl.toString() + RESOURCE_PREFIX + "/members/0");
ClientRequest request = new ClientRequest(deploymentUrl.toString() + RESOURCE_PREFIX + "/members/0");
request.header("Accept", MediaType.APPLICATION_XML);
// we're expecting a String back
ClientResponse<String> responseObj = request.get(String.class);
Assert.assertEquals(200, responseObj.getStatus());
System.out.println("GET /members/0 HTTP/1.1
" + responseObj.getEntity());
}
}
首先我用应用程序安装程序启动我的Jboss,然后我启动测试:
mvn clean test -Parq-jbossas-remote.
问题是部署url是错误的,因为它指向localhost:8080 / test,而正确的URL应该是localhost:8080 / myproject。
有没有简单的方法来设置包应该指向的上下文根?
答案
如果您希望部署上下文为myproject
,则最简单的选项是命名测试部署myproject.war
。您可以通过将ShrinkWrap.create(WebArchive.class, "test.war")
更改为ShrinkWrap.create(WebArchive.class, "myproject.war")
来实现。
另一种选择是添加一个jboss-web.xml
。
<?xml version="1.0"?>
<jboss-web>
<context-root>/myproject</context-root>
</jboss-web>
以上是关于Arquillian,Runclient测试为远程的主要内容,如果未能解决你的问题,请参考以下文章
使用 Arquillian 和 Wildfly 进行集成测试