Jakarta ee Arquillian,以远程方式运行客户端测试

Jakarta ee Arquillian,以远程方式运行客户端测试,jakarta-ee,jboss,jboss-arquillian,Jakarta Ee,Jboss,Jboss Arquillian,我想知道如何以jboss远程配置文件的形式启动Arquillian rest客户端测试 这是我的测试课: @RunAsClient @RunWith(Arquillian.class) public class MemberRegistrationClientTest { @Deployment public static Archive<?> createTestArchive() { return ShrinkWrap.create(WebArc

我想知道如何以jboss远程配置文件的形式启动Arquillian rest客户端测试

这是我的测试课:

@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\n\n" + responseObj.getEntity());


    }

}
问题是部署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


/我的项目

您认为上下文名称应该是
myproject
的原因是什么?从部署来看,它应该是
test
。是的,但不管名称如何,都可以设置上下文根。到目前为止,我看到了两种解决方案:1-在测试/资源上添加一个web.xml,上下文根=myproject 2-在测试方法中更改部署url本身这两个选项都会失败,因为无法在同一服务器上部署两个同名/上下文根的项目(这是因为我使用远程选项启动)对,您只能有一个部署上下文名称。这意味着您的测试必须使用
test
上下文。这是唯一的办法。
mvn clean test -Parq-jbossas-remote.