

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

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

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

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

将 [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)
```

测试报告将导出到 {{<test report directory>}} /指定的文件中{{<report filename>}}。

在您的`buildspec.yml`文件中， add/update 有以下几节。

```
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
```