Slack Reporter
概要
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 と統合するには、メッセージを送信するためのインカミングウェブフックを設定する必要があります。Slack でアプリを作成すると、Slack とやり取りするための *slack_webhook_url* が取得できます。詳細については、Slack ウェブフック ガイドを参照してください。
アプリを設定するには、次の手順に従ってください。
URL に移動し、*Slack アプリの作成* ボタンをクリックします。
*新しいアプリの作成* ボタンをクリックした後、*最初から* をクリックします。
アプリに適切な名前を付け、Slack ワークスペースを選択して、*アプリの作成* ボタンを押します。
注記:*このステップでは、Slack 管理者のみが解決できる次のエラーが発生することがあります。*
次に、*インカミングウェブフック* を選択します。
*インカミングウェブフックを有効化* ボタンをONに切り替えます。
そして、*ワークスペースに新しいウェブフックを追加* をクリックします。
チャンネルを選択し、*許可* ボタンをクリックして承認します。
これで、ウェブフック URL を使用できるようになりました。
ステップ3. Nightwatch とのレポーター統合
`nightwatch-slack-reporter` には、slack_message と slack_webhook_url を含むオプションオブジェクトが必要です。slack_message は関数またはメッセージとして適切に構成し、ステップ2 で作成した slack_webhook_url の値を設定することもできます。
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