testing - Arquillian - 如何调试托管的 Wildfly 容器

标签 testing tdd jboss-arquillian

我正在使用 Arquillian 为我的 RESTful 应用程序编写黑盒测试。我实际上能够调试测试类,但无法调试我的应用程序类。我想确切地知道该怎么做。

我的 arquillian.xml:

<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="jbossas-managed" default="true">
    <configuration>
        <property name="jbossHome">D:\desenv\arquivos\servidores\wildfly-9.0.1.Final-test</property>
        <property name="allowConnectingToRunningServer">true</property>
        <property name="javaVmArguments">-Dorg.apache.deltaspike.ProjectStage=IntegrationTest</property>
    </configuration>
</container>

我的一个测试类:

@RunAsClient
@RunWith(Arquillian.class)
public class AuthenticationBlackBoxTest extends AbstractBlackBoxTest {

    @Test
    public void testInvalidCredentials(@ArquillianResource URL baseURI) {
        Client client = ClientBuilder.newClient();
        WebTarget target = client.target(baseURI.toString()).path("api/v1/auth");
         Response response = target.request(MediaType.APPLICATION_JSON)
        .post(Entity.entity(new Credentials("invalid", "invalid"), MediaType.APPLICATION_JSON));

        Assert.assertEquals(401, response.getStatus());
        response.close();
        client.close();
    }

    @Test
    public void testValidCredentials(@ArquillianResource URL baseURI) {
        Client client = ClientBuilder.newClient();
        WebTarget target = client.target(baseURI.toString()).path("api/v1/auth");
        Entity<Credentials> credentialsEntity = Entity.entity(new Credentials("adm@adm.com", "123"), MediaType.APPLICATION_JSON);
        Response response = target.request(MediaType.APPLICATION_JSON)
        .post(credentialsEntity);

        Assert.assertEquals(200, response.getStatus());
        response.close();
        client.close();
    }
}

最佳答案

在 arquillian.xml 中为 javaVmArguments 元素添加 -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y

然后在您最喜欢的 IDE 中,您必须定义一个新的远程调试配置,您可以在其中指定主机 (localhost)、端口 (8787)。放置断点,然后运行测试,最后开始远程调试。官方文档 here .

关于testing - Arquillian - 如何调试托管的 Wildfly 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37200349/

相关文章:

python - 如何调试这个缓冲文件队列?

django - 在测试中使用 Django 缓存强制连接错误

javascript - 编写 React/Redux 时如何处理 TDD

entity-framework - 如何在不进行模拟的情况下针对 AccountController 的实际 ASP.NET Core 1.0 Identity 表进行 xUnit 测试?

jakarta-ee - arquillian 从主文件夹添加资源

java - Arquillian 与 cucumber 构建失败

java - 我在哪里可以找到 JMock Blitzer?

Flutter 驱动测试浏览器

.net - 测试项目中的App.config

java - Arquillian/收缩包装 : How to replace jar or class folder from a WAR?