概述

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 指南。

您必须按照以下步骤设置应用程序

  1. 导航到 url 并单击 **创建您的 Slack 应用程序** 按钮

    create-slack-app

  2. 单击 **从头开始** 按钮,然后单击 **创建新应用程序** 按钮。 create-app-from-scratch

  3. 给应用程序一个合适的名称,选择一个 Slack 工作区,然后点击 **创建应用程序** 按钮。

    slack-app-form

    注意:在此步骤中,您可能会遇到以下错误,只能由 Slack 管理员解决。

    approval-error

  4. 现在选择 **传入 Webhook**

    select-incoming-webhook-feature

  5. 将 **激活传入 Webhook** 按钮切换到 **ON**

    toggle-to-on

  6. 然后单击 **将新 Webhook 添加到工作区**

    add-new-webhook

  7. 选择一个频道,然后单击 **允许** 按钮以授权它

    allow-to-authorize

  8. 就是这样,您的 Webhook URL 就可以使用了

    webhook-ready-to-use

步骤 3. 报告器与 Nightwatch 的集成

nightwatch-slack-reporter 需要一个选项对象,其中将包含 **slack_message** 和 **slack_webhook_url**。您可以根据需要配置 **slack_message**,作为函数或消息,还可以设置 **slack_webhook_url** 的值,您在 **步骤 2** 中创建了该值

通过 globals.js 文件

确保您的 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))
}
通过配置文件
nightwatch.conf.js
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

步骤 2:在 Slack 上查看报告

reports