【问题标题】:Fundamental question about Arquillian for remote testing关于 Arquillian 进行远程测试的基本问题
【发布时间】:2011-06-16 18:07:58
【问题描述】:

我最近开始了解 Arquillian。正在学习入门教程,了解了有关远程、嵌入式和托管容器的“容器品种”。我对 Arqillian 如何处理这些不同品种感到有些困惑。

我的问题是:入门教程第一个示例(具有 TemparatureConverter)使用 JBoss AS 6 作为远程容器。我的理解是,包含 TemparatureConverter bean 的主要应用程序存档将部署在 JBoss AS 6(在其自己的 VM 中运行)中,而我的 Test 类将在单独的 VM 中运行。

我在 TemparatureConverter.java 中添加了一些日志消息,即 Bean 类:

public double convertToCelsius(double f) {
    System.out.println("@@@@@@@@@@Inside container: convertToCelsius");
    return ((f - 32) * 5 / 9);
}

public double convertToFarenheit(double c) {
    System.out.println("@@@@@@@@@@Inside container: convertToFarenheit");       
    return ((c * 9 / 5) + 32);
}

我还在我的测试类中添加了一些日志消息:

@Test
    public void testConvertToCelsius() {
        System.out.println("@@@@@@@@@Inside Junit client");
        Assert.assertEquals(converter.convertToCelsius(32d), 0d);
        Assert.assertEquals(converter.convertToCelsius(212d), 100d);
    }

现在我启动 JBoss AS 并通过命令行运行测试用例,输入:mvn test -Pjbossas-remote-6

我在想我在 Bean 类中添加的日志消息将打印在 JBoss 控制台上,而我在我的 Test 类中添加的日志消息将打印在 Maven 控制台窗口上,因为这两件事在不同的 VM 中运行.

然而这并没有发生,我看到所有日志消息都打印在 JBoss AS 控制台上。

这意味着,我的测试用例与 Bean 类一起在 JBoss AS 容器中运行。

如果这是真的,那么这里的偏远在哪里?我的意思是,测试用例和 bean 都在同一个 JVM 中运行。这类似于“嵌入式容器”行为,不是吗?

我指的是这个解释:

a remote container resides in a separate JVM from the test runner; Arquillian binds to the container to deploy and undeploy the test archive and invokes tests via a remote protocol (typically HTTP)

但在这种情况下,Arquillian 似乎将我的测试用例与 Bean 类放在同一个 JVM 中。

如果我的问题不清楚,请告诉我?

【问题讨论】:

    标签: dependency-injection cdi jboss-weld jboss-arquillian


    【解决方案1】:

    是的,Arquillian 正在部署您的测试用例类以及在您的目标容器中测试的代码。

    引用文档:

    Arquillian 在运行时打包 ShrinkWrap 定义的存档并将其部署到目标容器。然后它协商测试方法的执行,并使用与服务器的远程通信来捕获测试结果。

    因此,就“远程”而言,Arquillian 提供的是一种“远程”启动测试并将结果呈现给开发人员的方法,就好像它在“本地”运行一样。销售宣传是您不必关心部署,您可以在自己的开发环境中运行测试。

    远程容器和嵌入式容器的不同之处就在于容器的运行方式。远程意味着您在运行测试之前有一个容器与您的开发环境一起运行。而嵌入式增加了在测试开始时只运行容器的价值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-22
      相关资源
      最近更新 更多