

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Jasmine 设置测试报告
<a name="test-report-jasmine"></a>

以下过程演示如何在 AWS CodeBuild 中使用 [JasmineBDD 测试框架](http://jasmine.github.io/)来设置测试报告。

该过程需要以下先决条件：
+ 您有一个现有的 CodeBuild 项目。
+ 您的项目是一个 Node.js 项目，此项目设置为使用 Jasmine 测试框架。

将 [https://www.npmjs.com/package/jasmine-reporters](https://www.npmjs.com/package/jasmine-reporters) 程序包添加到项目 `package.json` 文件的 `devDependencies` 部分。此程序包具有一系列可以与 Jasmine 一起使用 JavaScript 报告程序类。

```
npm install --save-dev jasmine-reporters
```

如果它尚未存在，请将 `test` 脚本添加到项目的 `package.json` 文件中。`test` 脚本确保在运行 **npm test** 时调用 Jasmine。

```
{
  "scripts": {
    "test": "npx jasmine"
  }
}
```

CodeBuild 支持以下 Jasmine 测试报告程序：

**JUnitXmlReporter**  
用于以 `JunitXml` 格式生成报告。

**NUnitXmlReporter**  
用于以 `NunitXml` 格式生成报告。

默认情况下，具有 Jasmine 的 Node.js 项目将有一个 `spec` 子目录，其中包含 Jasmine 配置和测试脚本。

要将 Jasmine 配置为以 `JunitXML` 格式生成报告，请通过将以下代码添加到测试中来实例化 `JUnitXmlReporter` 报告程序。

```
var reporters = require('jasmine-reporters');

var junitReporter = new reporters.JUnitXmlReporter({
  savePath: <test report directory>,
  filePrefix: <report filename>,
  consolidateAll: true
});

jasmine.getEnv().addReporter(junitReporter);
```

要将 Jasmine 配置为以 `NunitXML` 格式生成报告，请通过将以下代码添加到测试中来实例化 `NUnitXmlReporter` 报告程序。

```
var reporters = require('jasmine-reporters');

var nunitReporter = new reporters.NUnitXmlReporter({
  savePath: <test report directory>,
  filePrefix: <report filename>,
  consolidateAll: true
});

jasmine.getEnv().addReporter(nunitReporter)
```

测试报告将导出到由 *<测试报告目录>*/*<报告文件名>* 指定的文件中。

在您的 `buildspec.yml` 文件中，添加/更新以下部分。

```
version: 0.2

phases:
  pre_build:
    commands:
      - npm install
  build:
    commands:
      - npm build
      - npm test

reports:
  jasmine_reports:
    files:
      - <report filename>
    file-format: JUNITXML
    base-directory: <test report directory>
```

如果您使用的是 `NunitXml` 报告格式，请将 `file-format` 值更改为以下值。

```
    file-format: NUNITXML
```