阅读(4830) (20)

Arquillian快速入门指南

2018-03-28 09:38:02 更新

Arquillian:快速入门指南

此功能仅在 Ultimate 版本中得到支持。

本指南显示了用于编写和运行 Arquillian 测试的主要 IntelliJ IDEA 功能。

在你开始使用本指南前,请确保您的计算机上安装了以下软件:

  • IntelliJ IDEA ULTIMATE 版。同时检查JBoss Arquillian支持插件是否已启用。
  • Java SE 开发工具包(JDK),版本8,下载 Oracle JDK。
  • GlassFish 服务器,版本4,服务器将用作托管的 Arquillian 容器,下载 GlassFish。

您还应该下载javax-inject.jar。在开发我们的示例测试类时,该文件将用作库。

使用Arquillian JUnit支持创建项目

  1. 在“欢迎(Welcome)”界面上单击“创建新项目(Create New Project)”,或选择:文件| 新增| 项目(File | New | Project)。将打开“新建项目(New Project)”向导。
  2. 在左侧窗格中,选择 Java Enterprise。
  3. 如果您要使用的 JDK 已经在 IntelliJ IDEA 中定义,则请从 Project SDK 列表中选择该 JDK 。否则,请单击“新建(New)”,选择 JDK,然后在打开的对话框中选择 JDK 安装文件夹。 
  4. 如果尚未在 IntelliJ IDEA 中定义 GlassFish,请单击 Application Server 字段右侧的“新建(New)”并选择 Glassfish Server。在 Glassfish 服务器对话框中,指定GlassFish 服务器安装目录。 
  5. 在“其他库和框架(Additional Libraries and Frameworks)”下,选择Arquillian JUnit复选框。
    Arquillian快速入门指南
    点击“下一步”。
  6. 指定新项目的名称(例如HelloArquillian),然后单击“完成”。
    Arquillian快速入门指南
    项目创建完成后,您会在项目工具窗口中看到与此类似的内容。
    Arquillian快速入门指南

(要为现有项目添加 Arquillian JUnit 支持:在“项目(Project)”工具窗口中,右键单击您的项目或模块文件夹,然后选择“添加框架支持(Add Framework Support)”,然后在打开的对话框中选择 Arquillian JUnit 复选框。

创建一个类

现在我们要创建一个我们要测试的类。让类名称为 com.example.hello.Greeter。

  1. 在“项目(Project)”工具窗口中,右键单击该 src 文件夹,指向“新建(New)”并选择 Java Class。
  2. 在打开的“创建新类(Create New Class)”对话框中,在 Name 字段中键入 com.example.hello.Greeter,然后按 Enter。包 com.example.hello 和类Greeter 都显示在 Project 工具窗口中。
    Arquillian快速入门指南
    与此同时,该文件 Greeter.java将在编辑器中打开。

为Greeter类开发代码

以下是该 Greeter 类的代码。

package com.example.hello;

import java.io.PrintStream;

public class Greeter {
    public void greet(PrintStream to, String name) {
        to.println(createGreeting(name));
    }

    public String createGreeting(String name) {
        return "Hello, " + name + "!";
    }
}

将代码复制到编辑器中:

Greeter类开发代码

将javax-inject.jar定义为库

为了能够编写和运行我们的 Arquillian 测试,我们需要将 javax-inject.jar 作为一个库。

  1. 在项目的根文件夹中,创建文件夹 lib (新建|目录(New | Directory))并复制 javax-inject.jar 到该文件夹​​中。
    Arquillian快速入门指南
  2. 打开“项目结构(Project Structure)”对话框(Ctrl+Shift+Alt+S)并选择库。
  3. 单击 ,在打开的对话框中选择 Java 和 javax-inject.jar。
  4. 在 Choose Modules 对话框中,单击“OK”。
    Arquillian快速入门指南
  5. 在“项目结构(Project Structure)”对话框中单击“确定”。

为测试来源创建一个文件夹

  1. 在项目的根文件夹中,创建 test 文件夹。
  2. 用鼠标右键单击该文件夹,指向标记目录另存并选择测试源根目录。
    Arquillian快速入门指南

创建一个测试类

  1. 在编辑器中,将光标放在类(Greeter)的名称中。
  2. 点击灯泡 (Alt+Enter)并选择“创建测试(Create Test)”。
    Arquillian快速入门指南
  3. 在打开的“创建测试(Create Test)”对话框中,从测试库列表中选择 Arquillian JUnit4。在“创建测试方法(Create test methods for)”下,选择不返回值的方法(greet),点击“确定”。 
    Arquillian快速入门指南
    “项目(Project)”工具窗口中显示新的测试类。
    Arquillian快速入门指南
    与此同时,该 GreeterTest.java 文件将在编辑器中打开。
    Arquillian快速入门指南
    测试类的初始内容由相应的模板定义。您可以在“设置/首选项(Settings / Preferences)”对话框(按下 Ctrl+Alt+S,选择:编辑器|文件和代码模板(Editor | File and Code Templates))的“文件和代码模板(File and Code Templates)”页面的“代码(Code)”选项卡上编辑该模板。

完成GreteerTest类的代码

这是测试类在最终状态下的代码:

package com.example.hello;

import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;

import javax.inject.Inject;

import static org.junit.Assert.*;

@RunWith(Arquillian.class)
public class GreeterTest {
    @Deployment
    public static JavaArchive createDeployment() {
        return ShrinkWrap.create(JavaArchive.class)
            .addClass(Greeter.class)
            .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
        }

    @Inject
    Greeter greeter;

    @Test
    public void greet() throws Exception {
        String name="Arquillian";
        Assert.assertEquals("Hello, Arquillian!", greeter.createGreeting(name));
        greeter.greet(System.out, name);
    }
}
  1. 要插入适当的 import 语句 @Inject,请键入 @Inj 并选择 @Inject(javax.inject)。
    Arquillian快速入门指南
  2. 通过复制添加剩余的代码。
    Arquillian快速入门指南

创建运行测试的运行配置

  1. 在左侧 public class GreeterTest,点击 并选择“运行'GreeterTest'(Run 'GreeterTest')”。
    Arquillian快速入门指南
  2. 在打开的“编辑配置(Edit configuration)”对话框中,单击“配置(Configure)”。
    Arquillian快速入门指南
  3. 在 Arquillian Containers 对话框中,单击 ,指向 Embedded,并选择 GlassFish Embedded 3.1。(我们将开始在嵌入式容器中运行测试。)
    Arquillian快速入门指南
  4. 在编辑配置对话框中,选择 GlassFish Embedded 3.1。
    Arquillian快速入门指南

在嵌入式容器中运行测试

  1. 在“编辑配置(Edit configuration)”对话框中,单击“运行(Run)”。在运行工具窗口打开,一段时间后,测试结果显示在那里。
    Arquillian快速入门指南
  2. 点击 关闭“运行(Run)”工具窗口。

编辑运行配置:添加托管容器

现在让我们更改我们的运行配置,以便它可以用于在托管容器中运行测试。

  1. 点击运行配置选择器并选择“编辑配置(Edit Configurations)”。
    Arquillian快速入门指南
  2. 在运“行/调试配置(Run/Debug Configurations)”对话框中,单击“配置(Configure)”。
    Arquillian快速入门指南
  3. 在 Arquillian 容器对话框中,单击 并选择“手动容器配置(Manual container configuration)”。
  4. 更改配置的名称(例如 GlassFish Managed)。
  5. 在 Dependencies 下,单击 并选择 Add maven dependency。
  6. 在“从Maven存储库下载库(Download Library From Maven Repository)”对话框中,键入 arquillian-glassfish-managed-3.1 并单击 。然后从列表中选择 org.jboss.arquillian.container:arquillian-glassfish-managed-3.1:1.0.0.CR4。选择“下载到(Download to)”复选框,然后单击“确定”。
    Arquillian快速入门指南
    在这一步,你的 Arquillian 容器对话框应该是这样的:
    Arquillian快速入门指南
    点击“确定”。
  7. 在“运行/调试配置(Run/Debug Configurations)”对话框中,选择“GlassFish托管(GlassFish Managed)”,然后单击“确定”。
    Arquillian快速入门指南

创建arquillian.xml配置文件

为了能够在托管容器中运行 Arquillian 测试,容器适配器需要知道容器位置。所以让我们用必要的信息创建 arquillian.xml 配置文件。

  1. 在项目的根文件夹中,创建文件夹 test-resources。
  2. 右键单击新文件夹,指向“将目录标记为(Mark Directory As)”,然后选择“测试资源根目录(Test Resources Root)”。
  3. 在 test-resources 文件夹中,创建一个新文件 arquillian.xml。
    Arquillian快速入门指南
  4. 将以下内容复制到文件中:
    <?xml version="1.0"?>
    <arquillian xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns="http://jboss.org/schema/arquillian"
            xsi:schemaLocation="http://jboss.org/schema/arquillian
        http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
    
        <container qualifier="glassfish" default="true">
            <configuration>
                <property name="glassFishHome">C:GlassFishglassfish4</property>
            </configuration>
        </container>
    </arquillian>
    Arquillian快速入门指南
    使用 GlassFish 服务器安装文件夹的实际路径代替 C:GlassFishglassfish4。

在托管容器中运行测试

  1. 在运行配置选择器的右侧,单击
    Arquillian快速入门指南
    将打开“运行(Run)”工具窗口,测试结果显示在那里。
    Arquillian快速入门指南
  2. 关闭工具窗口( 关)。

修改arquillian.xml

有时,您需要将测试部署到已运行的容器。在这种情况下,您可以稍微更改容器配置文件并继续使用托管容器适配器。

将以下内容添加到 arquillian.xml:

<property name="allowConnectingToRunningServer">true</property>

Arquillian快速入门指南

运行测试:部署到正在运行的服务器

  1. 启动 GlassFish 服务器:选择 GlassFish 并单击
    Arquillian快速入门指南
    当服务器启动时,您会在运行工具窗口中看到类似这样的内容。
    Arquillian快速入门指南
  2. 选择 GlassFish Managed:GreeterTest 并单击
    Arquillian快速入门指南
    一段时间后,测试结果显示在运行工具窗口中。
    Arquillian快速入门指南