https://github.com/priotas/behat-slack-extension
A behat extension for uploading files from behat to slack
https://github.com/priotas/behat-slack-extension
behat-extension slack
Last synced: about 1 month ago
JSON representation
A behat extension for uploading files from behat to slack
- Host: GitHub
- URL: https://github.com/priotas/behat-slack-extension
- Owner: priotas
- License: apache-2.0
- Created: 2017-04-24T18:59:17.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2017-09-26T07:31:27.000Z (over 8 years ago)
- Last Synced: 2025-08-16T01:38:36.269Z (10 months ago)
- Topics: behat-extension, slack
- Language: PHP
- Homepage:
- Size: 10.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://travis-ci.org/priotas/behat-slack-extension)
# Installation
```composer require --dev priotas/behat-slack-extension```
# Configuration
## behat.yml
```YML
profile_name:
extensions:
Priotas\Behat\SlackExtension:
slackToken: "xoxb-0000000000-xxxxxxxxxxxxxxxxxxxxxxxx"
slackChannel: "XXXXXXXXX"
```
## Environment Variable
```BASH
export BEHAT_PARAMS='{"extensions" : {"Priotas\\Behat\\SlackExtension" : {"slackToken" : "xoxb-0000000000-xxxxxxxxxxxxxxxxxxxxxxxx", "slackChannel": "XXXXXXXXX"}}}'
```
# Usage
```PHP
/**
* @AfterStep
*/
public function takeScreenshotAfterFailedStep(Behat\Behat\Hook\Scope\AfterStepScope $scope)
{
/** Behat\Behat\Tester\Result\StepResult $result */
$result = $scope->getTestResult();
if (!$result->isPassed()) {
$driver = $this->getSession()->getDriver();
if ($driver instanceof \Behat\Mink\Driver\Selenium2Driver) {
$driver->resizeWindow(1024, 768);
$featureName = basename($scope->getFeature()->getFile(), '.feature');
$stepText = $featureName . '.' . $this->scenarioName . '.' . $scope->getStep()->getText();
$fileTitle = 'behat_screenshot_' . preg_replace("#[^a-zA-Z0-9\._-]#", '', $stepText);
$fileName = sys_get_temp_dir() . DIRECTORY_SEPARATOR . $fileTitle . '.png';
$screenshot = $driver->getScreenshot();
file_put_contents($fileName, $screenshot);
print "Screenshot for '{$stepText}' placed in {$fileName}\n";
if (isset($this->slackChannel)) {
print "Uploading Screenshot to Slack...\n";
$this->slackChannel->upload($fileName, $fileTitle, $stepText);
}
}
}
}
```