JUnit XML 报告器
概述
JUnit 是一种广泛使用的 XML 格式,用于生成测试结果,大多数 CI 系统(例如 Jenkins)都具有原生支持来将其插入,以便可以显示更高级的报告。
Nightwatch 默认情况下会输出 JUnit 格式的 XML,这可以通过 output_folder
配置设置进行控制。
配置
HTML 报告器从 v2.2 开始 **默认启用**,连同 HTML 和 JSON 报告器,但其行为可以通过以下方式进行配置
通过配置文件
output_folder
配置设置用于指定保存 JUnit XML 报告文件的目录。Nightwatch 为每个测试套件文件编写一个 XML 文件。
module.exports = {
output_folder: 'tests_output'
}
有关测试输出相关设置的完整列表,请参阅 配置 > 输出设置 页面。
通过 CLI
您还可以使用 --output
标志通过 CLI 在运行时配置输出文件夹
nightwatch --output ./tests-output
有关 Nightwatch 接受的 CLI 标志的完整列表,请参阅 CLI 参考页面。
XML 文件名遵循以下模式
示例
步骤 0:创建新项目
首先,让我们创建一个新的空项目并在其中安装 Nightwatch
mkdir ./test-project && cd ./test-project
步骤 1:安装 Nightwatch 和 chromedriver
从 NPM 安装 nightwatch
和 chromedriver
(chromedriver
是用于在 Google Chrome 浏览器中运行测试的 W3C WebDriver 实现;请确保您的机器上安装了最新版本的 Chrome 浏览器)
npm i nightwatch chromedriver
步骤 2:运行示例测试
请考虑 duckDuckGo.js 示例测试
describe('duckduckgo example', function() {
it('Search Nightwatch.js and check results', function(browser) {
browser
.navigateTo('https://duckduckgo.com')
.waitForElementVisible('#search_form_input_homepage')
.sendKeys('#search_form_input_homepage', ['Nightwatch.js'])
.click('#search_button_homepage')
.assert.visible('.results--main')
.assert.textContains('.results--main', 'Nightwatch.js');
});
});
我们可以使用以下命令运行它
npx nightwatch examples/tests/duckDuckGo.js --env chrome
要仅生成内置的 JUnit-XML 报告,请运行以下命令
npx nightwatch examples/tests/duckDuckGo.js --env chrome --reporter=junit
要同时生成内置的 JUnit-XML 和 HTML 报告,请运行以下命令(v2.2+)
npx nightwatch examples/tests/duckDuckGo.js --env chrome --reporter=junit --reporter=html
步骤 3:查看 JUnit XML 报告
JUnit XML 报告应该已生成在当前项目目录内的本地 tests_output
文件夹中。它看起来像这样
Jenkins 集成
JUnit 格式的 XML 输出通过“发布 JUnit 测试结果报告”构建后操作默认集成到 Jenkins 中。
通过将测试报告集成到 Jenkins,您可以生成趋势和报告,并充分利用 Jenkins 报告功能。
有关更多详细信息,请参阅 Jenkins 用户指南。
JUnit 模式
完整的 Apache Ant JUnit XML .xsd
模式可在 Github 上获得:windyroad/JUnit-Schema/blob/master/JUnit.xsd。
禁用 JUnit 报告
如果需要,可以通过将 output_folder
配置设置设置为 false
来完全禁用报告
module.exports = {
output_folder: false
}