Arquillian, тест Runclient как удаленный - PullRequest
0 голосов
/ 06 сентября 2018

Интересно, как запустить тест клиента 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\n\n" + responseObj.getEntity());


    }

}

Сначала я запускаю Jboss с установщиком приложения, затем запускаю тест с:

mvn clean test -Parq-jbossas-remote.

Проблема в том, что URL-адрес развертывания неверен, поскольку он указывает на localhost: 8080 / test, а правильный URL-адрес должен быть localhost: 8080 / myproject.

Есть ли простой способ установить корневой контекст, куда должен указывать пакет?

1 Ответ

0 голосов
/ 07 сентября 2018

Если вы хотите, чтобы контекст развертывания был 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>
...