2016-06-15 5 views
0

Это мой gulpfile:Глоток-browserstack и проглатывать-огурец, кажется, не играть хорошо вместе

var gulp = require('gulp'); 

var cucumber = require('gulp-cucumber') 
var browserStack = require('gulp-browserstack'); 

gulp.task('cucumber', function() { 
    return gulp.src('features/my_feature.feature') 
    .pipe(browserStack.startTunnel({ 
     key: '<itsasecret>' 
    })) 
    .pipe(cucumber({})) 
    .pipe(browserStack.stopTunnel()); 
}); 

Когда все сценарии проходят, глоток виснет, и никогда не выходит. Любая помощь будет оценена по достоинству.

ответ

0

Вот решение, которое я закончил с использованием

const gulp = require('gulp'); 

const cucumber = require('gulp-cucumber') 
const BrowserStackTunnel = require('browserstacktunnel-wrapper'); 

var tunnel; 
function startTunnel(options) { 
    return new Promise((resolve, reject) => { 
    tunnel = new BrowserStackTunnel(options); 

    tunnel.start(function(error) { 
    error ? reject(error) : resolve(); 
    }); 
    }); 
} 

function stopTunnel(error) { 
    return new Promise((resolve, reject) => { 
    function resolveOrReject() { 
     error ? reject(error) : resolve(); 
    } 

    tunnel ? tunnel.stop(resolveOrReject) : resolveOrReject(); 
    }); 
}; 

function createCucumberPromise(src, options) { 
    return function() { 
    return new Promise((resolve, reject) => { 
     gulp.src(src) 
     .pipe(cucumber(options)) 
     .on('end', resolve) 
     .on('error', reject); 
     }); 
    } 
}; 

gulp.task('cucumber',() => { 
    return startTunnel({ 
     key: '<stillasecret>' 
    }) 
    .then(createCucumberPromise('features/my_feature.feature', { 
     // format: 'json:output.json' 
     // tags: '@wip' 
    })) 
    .then(stopTunnel, stopTunnel); 
}); 

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

  • Нет связанных вопросов^_^