# Slack Service

> wdio-slack-service is a 3rd party package, for more information please see [GitHub](https://github.com/carmenmitru/wdio-slack-service) | [npm](https://www.npmjs.com/package/wdio-slack-service) Webdriverio library to send test results as a slack notification/message to channels

## Installation[​](#installation "Direct link to Installation")

The easiest way is to keep `wdio-slack-service` as a devDependency in your `package.json`.

```
{
  "devDependencies": {
    "wdio-slack-service": "2.0.8"
  }
}
```

You can simple do it by:

```
npm install wdio-slack-service --save-dev
```

Instructions on how to install `WebdriverIO` can be found [here.](https://webdriver.io/docs/gettingstarted.html)

## Configuration[​](#configuration "Direct link to Configuration")

At first, import the service to wdio config file `wdio.conf.js`

```
// wdio.conf.js
const slack = require('wdio-slack-service');
```

In order to use the service you need to have slack webhook url to send the notification and you need to add `slack` to your `services` array

Example:

```
// wdio.conf.js
export.config = {
    // ...
    services: [
        [slack, {
            webHookUrl: "<SLACK_WEBHOOK_URL>", // Used to post notification to a particular channel
            notifyOnlyOnFailure: true, // Send notification only on test failure
            messageTitle: "<NOTIFICATION_TITLE>" // Name of the notification
        }]
]
```

## Features[​](#features "Direct link to Features")

* Send notification irrespective of test results
* Send notification only on test failure
* Support for `mocha`, `jasmine` and `cucumber`
* Retry/Rerun tests will be logged with addional info
* Test duration info
* Error details
* Cucumber scenario/step reporting
* Browser and Version info

## How it works[​](#how-it-works "Direct link to How it works")

For `mocha`/`jasmine`, notification will be sent on spec level and for `cucumber`, it will be on feature level. Let's say, if you have 10 spec/feature files, you will receive 10 notifications as it is triggered in `after` hook

## Options[​](#options "Direct link to Options")

To send a notification, you should have slack webhook url. To know how to create slack webhook URL, see this [page](https://api.slack.com/messaging/webhooks)

### webHookUrl[​](#webhookurl "Direct link to webHookUrl")

This url is used to identity/authenticate the post message and sends it to a slack channel

Type: `String`<br />Optional: `NO`<br />Default: `NA`

### notifyOnlyOnFailure[​](#notifyonlyonfailure "Direct link to notifyOnlyOnFailure")

If you want to receive slack notifications only on test failure, then set this option to `true`. Otherwise, it sends notification for all test executions irrespective of pass/fail

Type: `Boolean`<br />Optional: `YES`<br />Default: `false`

### messageTitle[​](#messagetitle "Direct link to messageTitle")

Title of the notification

Type: `String`<br />Optional: `YES`<br />Default: `Webdriverio Slack Reporter`

## Screenshots[​](#screenshots "Direct link to Screenshots")

### Cucumber Pass/Fail[​](#cucumber-passfail "Direct link to Cucumber Pass/Fail")

![Cucumber Pass/fail](https://github.com/carmenmitru/wdio-slack-service/blob/master//assets/Cucumber.PNG)

### Cucumber Retry[​](#cucumber-retry "Direct link to Cucumber Retry")

![Cucumber Retry](https://github.com/carmenmitru/wdio-slack-service/blob/master//assets/Cucumberretry.PNG)

### All Pass[​](#all-pass "Direct link to All Pass")

![All Pass](https://github.com/carmenmitru/wdio-slack-service/blob/master//assets/allpass.PNG)

### Fail Pass[​](#fail-pass "Direct link to Fail Pass")

![Fail Pass](https://github.com/carmenmitru/wdio-slack-service/blob/master//assets/failpass.PNG)

### Retry Failed[​](#retry-failed "Direct link to Retry Failed")

![Retry Failed](https://github.com/carmenmitru/wdio-slack-service/blob/master//assets/retryfail.PNG)

### Retry Passed[​](#retry-passed "Direct link to Retry Passed")

![Retry Passed](https://github.com/carmenmitru/wdio-slack-service/blob/master//assets/retrypassed.PNG)

***

For more information on WebdriverIO see the [homepage](https://webdriver.io).
