Установка
Прописываем в файле composer.json следующие строки:
"require-dev": {
"phpspec/phpspec": "^3.0"
},
"config": {
"bin-dir": "bin"
},
и выполняем команду composer install
, затем берёмся за npm:
npm install gulp gulp-run gulp-phpspec gulp-notify gulp-plumber --save-dev
не забываем создать phpspec.yml в корневом каталоге:
suites:
my_suite:
namespace: Denismitr
psr4_prefix: Denismitr
и прописываем autoload с psr-4 в composer.json
:
"autoload": {
"psr-4": {
"Denismitr\\": "src/"
}
}
Gulpfile.js
Создаем этот файл в корневой директории и пишем следующее:
var gulp = require('gulp');
var phpspec = require('gulp-phpspec');
var run = require('gulp-run');
var plumber = require('gulp-plumber');
var notify = require('gulp-notify');
gulp.task('test', function() {
gulp.src('phpspec.yml')
.pipe(run('clear'))
.pipe(phpspec('.\\bin\\phpspec run', { 'debug': true, 'notify': true}))
.on('error', notify.onError({
title: "Чёрт",
message: "Твои тесты провалилиь!",
icon: __dirname + '/fail.png'
}))
.pipe(notify({
title: "Победа",
message: "Все тесты вернули зелёный!"
}));
});
gulp.task('watch', function() {
gulp.watch('spec/**/*.php', ['test']);
});
gulp.task('default', ['test']);
Здесь важны несколько моментов.
- Нужно указать файл настроек phpspec.yml в команде gulp.src
- Если Phpspec создал каталог bin с файлом phpspec.bat, то необходимо пропискать путь к этому пусковому файлу:
'.\\bin\\phpspec run'
- Не забыть про default task для гульпа, чтобы запускать тесты просто набрав gulp в командной строке