2015-10-30 2 views
0

Я довольно новичок в узле. Я создал образец экспресс-приложения и написал для него несколько тестов BDD с использованием cucumber.js. Я хотел бы автоматизировать тесты с помощью gulp, чтобы при выполнении моих тестов сначала запускалось экспресс-приложение и, как только сервер встал, пропустил тесты. Однако в настоящее время тесты выполняются до того, как сервер встал и, следовательно, все сбой. Есть ли способ подождать (используя глоток) для запуска сервера и только затем запустить тесты?Gulp: Подождите, пока экспресс-сервер начнет работу перед запуском тестов.

Я использую gulp-огурец и gulp-express здесь (несколько скрытый gulp-load-plugins).

Мой gulpfile (частичное):

var gulp = require('gulp'), 
    plugins = require('gulp-load-plugins')(); 

gulp.task('server', function() { 
    plugins.express.run(['bin/www']); 
}); 

gulp.task('cucumber', ['server'], function() { 
    return gulp.src('features/*').pipe(plugins.cucumber({ 
    'steps': 'features/steps/*.steps.js', 
    'support': 'features/support/*.js' 
    })); 
}); 

gulp.task('test', ['server', 'cucumber']); 

ответ

1

Я должен использовать это решение - https://www.npmjs.com/package/run-sequence

var gulp = require('gulp'), 
    plugins = require('gulp-load-plugins')(), 
    runSequence = require('run-sequence'); 

gulp.task('server', function() { 
    plugins.express.run(['bin/www']); 
}); 

gulp.task('cucumber', function() { 
    return gulp.src('features/*').pipe(plugins.cucumber({ 
    'steps': 'features/steps/*.steps.js', 
    'support': 'features/support/*.js' 
    })); 
}); 

gulp.task('test', function(){ 
    runSequence('server', 'cucumber'); 
}); 
+0

спасибо, работает как шарм – joniba

Смежные вопросы