Header Image

GULP и PHPSPEC

Загружено/обновлено 23 Ноября 2016

Установка

Прописываем в файле 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 в командной строке