章节目录:

前言

JUnit Executor 工具能够结合使用 SOAtest 运行的各种其他类型的测试来执行 Junit 测试。这使您能够设计和执行单一的测试场景,将 JUnit 测试编排为更广泛的事件序列的一部分,如 Set-Up 测试环境或测试数据,通过该工具运行单元测试,然后执行移动测试。

要求

  • 支持 JUnit 3.8.x 和 4
  • 该工具需要 SOAtest 9.8.1 或更高版本

安装

可以通过 UI 或命令行安装该工具。

UI 安装

  1. 从主菜单中选择 Parasoft> 首选项
  2. 选择 系统属性选项卡并点击添加 JARs
  3. 找到 junitexecutor.jar 文件,然后点击应用
  4. 重启 SOAtest。

命令行安装

junitexecutor.jar 文件添加到 settings.properties 文件中的 system.properties.classpath 属性。例如:

system.properties.classpath=<path to jar>/junitexecutor.jar 

使用说明

测试的类文件夹或 .jar 文件必须包含您希望执行的 JUnit。其他依赖项可以包含在 jar/folder 中,添加到系统属性中,或者两者都包含。该工具首先检查 jar/folder,然后在必要时检查系统属性。

添加工具

您可以使用向导将 JUnit Executor 作为独立工具添加。

  1. 右键点击测试套件文件夹,然后选择新建> 测试... 
  2. 找到 JUnit Executor 工具,点击完成。
  3. 根据您的场景配置工具。

运行特定测试方法

  1. 指定测试的类文件夹或 jar 文件,以及要运行的测试类和测试方法。
  2. (可选)如果要从该工具动态更改 Junit 值,请在 Data 字段中输入以分号分隔的键值对。

    例如,可在 JUnit 源代码中使用 Java 的系统属性对象访问这些变量: 

    String lastName = System.getProperty("lastName")

运行类中所有测试方法

  1. 指定测试的类文件夹或 jar 文件,以及测试类。保留 Method 字段为空。
  2. (可选)如果要从该工具动态更改 Junit 值,请在 Data 字段中输入以分号分隔的键值对。例如,可在 JUnit 源代码中使用 Java 的系统属性对象访问这些变量:  

    String lastName = System.getProperty("lastName")

查看结果

执行细节和结果将在控制台视图中报告。此外,任何检测到的测试失败都将在质量任务视图中报告:

从 JUnit 测试向控制台报告消息

在项目中导入 com.parasoft.api 包以访问 Application Context,这样 SOAtest 就能向控制台报告 JUnit 测试执行的信息:

Application.showMessage("this displays in the console");

  在 Java 项目的 classpath 中添加 <SOATEST_INSTALL>/plugins/com.parasoft.ptest.libs.web_<version>/root/com.parasoft.api.jar 以导入资源。

从 JUnit 测试中检索数据

您可以将 SOAtest 输出与 JUnit Executor 关联,这样就能从 JUnit 测试输出中获取数据,以便在其他测试中使用。您需要配置 Junit,以指示希望存储哪些值,并将合适的工具与该执行器工具的 Junit Output 关联。数据将以 XML 格式传递到附加的工具。例如,可以将数据发送给比较工具、XML 断言器或 XML 数据库工具。

配置 Junit Output

您的 JUnit 必须访问应用程序上下文,并将所需值存储在 custom_tool_junit_output 键下的标准 Java Map 中。JUnit Executor 工具将检查应用程序上下文中存储的映射,将其转换为传递给该工具“JUnit Output”输出的 XML。映射的键和值必须是字符串。

根据Reporting Messages from JUnit Test to Console的说明,将 com.parasoft.api 包导入 Junit 以访问 Application Context。

将数据发送到另一个工具

将 JUnit 测试的输出数据发送给处理 XML 数据的工具:

  1. 右键点击 JUnit Executor,然后选择 添加输出
  2. 选择接收输出的工具,然后点击完成

示例

在本例中,我们将在 XML 数据库中存储 multiplyResultsumResult JUnit 操作的值,以便在后续测试中使用这些值。将执行以下程序:

  1. JUnit 测试构建了一个包含这些值的映射
  2. 将映射放入应用程序上下文中。
  3. 映射中的值将被转换成 XML 文档,传递给任何与 Junit Output 关联的工具
@Test
public void testExample() throws Exception {
  int multiplyResult = 8 * 8;
  int sumResult = 8 + 8;

// Create map representing name-value pairs for XML 
  Map<String, String> map = new HashMap<String, String>(); 
  map.put("multiplyResult", String.valueOf(multiplyResult)); 
  map.put("sumResult", String.valueOf(sumResult));

// Get the Parasoft Scripting Context
  ScriptingContext context = Application.getContext();

// Place the map in the context with the custom_tool_junit_output 
  context.put("custom_tool_junit_output", map);
  }

添加一个配置为用于运行此测试的 JUnit Executor 工具,并在 Junit Output 中添加一个 XML 数据库工具。

指定提取并在其他工具中使用的值。映射的内容显示在 XML 文档中 <root> 元素下,该文档会传递给与 Junit Output 关联的工具。在本例中添加了一个值断言工具。

第三方内容

此插件包括来自第三方的资源项,如下所示。

更多许可证详情可在该插件的 licenses 文件夹中获得。


  • No labels