Slack 报告器
概述
Slack 集成允许您在团队的 Slack 频道中直接查看 Nightwatch.js 测试结果。
配置
步骤 1:安装 Nightwatch-Slack-Reporter
在您的 nightwatch 项目中安装 nightwatch-slack-reporter
作为依赖项。
npm i nightwatch-slack-reporter --save-dev
步骤 2:Slack 应用程序设置
为了将 **nightwatch-slack-reporter** 与 Slack 集成,您需要设置一个传入 Webhook 来发送消息。创建 Slack 上的应用程序后,您将获得一个 **slack_webhook_url** 来与 Slack 交互。有关更多信息,您可以参考 Slack Webhook 指南。
您必须按照以下步骤设置应用程序
导航到 url 并单击 **创建您的 Slack 应用程序** 按钮
单击 **从头开始** 按钮,然后单击 **创建新应用程序** 按钮。
给应用程序一个合适的名称,选择一个 Slack 工作区,然后点击 **创建应用程序** 按钮。
注意:在此步骤中,您可能会遇到以下错误,只能由 Slack 管理员解决。
现在选择 **传入 Webhook**
将 **激活传入 Webhook** 按钮切换到 **ON**
然后单击 **将新 Webhook 添加到工作区**
选择一个频道,然后单击 **允许** 按钮以授权它
就是这样,您的 Webhook URL 就可以使用了
步骤 3. 报告器与 Nightwatch 的集成
nightwatch-slack-reporter
需要一个选项对象,其中将包含 **slack_message** 和 **slack_webhook_url**。您可以根据需要配置 **slack_message**,作为函数或消息,还可以设置 **slack_webhook_url** 的值,您在 **步骤 2** 中创建了该值
通过 globals.js 文件
确保您的 globals.js
已配置;如果没有,请遵循 设置指南。
const options = {
// function or message string
slack_message: function(results, options) {
// Message payload or string
return {
text: 'Test completed, passed ' + results.passed + ', failed ' + results.failed,
username: 'Nightwatch',
icon_emoji: ':ghost:'
}
},
// This can be specified with SLACK_WEBHOOK_URL environment variable
slack_webhook_url: 'https://hooks.slack.com/services/...'
}
module.exports = {
reporter: (require('nightwatch-slack-reporter')(options))
}
通过配置文件
const options = {
slack_message: function(results, options) {
return {
text: 'Test completed, passed ' + results.passed + ', failed ' + results.failed,
username: 'Nightwatch',
icon_emoji: ':ghost:'
}
},
slack_webhook_url: 'https://hooks.slack.com/services/...'
}
module.exports = {
src_folders: ['tests'],
globals: {
reporter: (require('nightwatch-slack-reporter')(options)),
},
// Other stuff
}
示例
步骤 0:安装 Nightwatch
遵循 指南 或观看 视频 从头开始安装 Nightwatch。
步骤 1:运行示例测试
考虑 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');
});
});
您无需做任何额外的事情,因为您已将 Slack 报告器配置为全局。按惯例运行测试
npx nightwatch examples/tests/duckDuckGo.js --env chrome