2016-09-07 7 views
0

나는 Gulp를 래퍼로 붙잡고있다. 나는 다른 프로젝트 (웹 사이트)에 대한 내 작품에 여러 spec 파일을 가지고 있고이 spec 파일에서 테스트 스위트를 만들고 싶다. 다음은 꿀꺽 꿀꺽 지금 내가 위의 실행하려는 제품군 이름을 지정한 `꿀꺽 꿀꺽 거리기에 스위트 이름을 추가 할 때의 문제

var binPath = './node_modules/.bin/'; 

gulp.task('test-all', function(cb) { 
    async.eachSeries(glob.sync('sites/*'), testSite, cb); 
}); 
gulp.task('test', function(cb) { 
    env.validate(util.env, { 
    site: { 
     required: true, 
    }, 
    useSelenium: { 
     required: false, 
    }, 
    params: { 
     required: false, 
    } 
    }); 
    testSite('sites/' + util.env.site, cb); 
}); 

gulp.task('explorer', function(cb) { 
    runProtractor(['--elementExplorer', '--directConnect'], cb); 
}); 

gulp.task('serve', function(cb) { 
    runModule('webdriver-manager', ['start'], cb); 
}); 
gulp.task('update', function(cb) { 
    runModule('webdriver-manager', ['update'], cb); 
}); 
gulp.task('default', ['test']); 
function runModule(name, params, cb) { 
    new simpleCommand(path.join(binPath, name), params, process.cwd()).run(cb); 
} 
function runProtractor(params, cb) { 
    runModule('protractor', params, cb); 
} 
function testSite(site, cb) { 
    var params = [ 
    site + '/protractor.conf.js', suite=smoke, 
    '--params.timestamp=' + timestamp 
    ]; 
    if (!util.env.useSelenium) { 
    params.push('--directConnect'); 
    } 
    if (util.env.params) { 
    params.push(util.env.params.replace(/(^['"]|['"]$)/g, '').trim()); 
    } 
    util.log('Testing ' + site); 
    runProtractor(params, function(err) { 
    if (err) { 
     util.log(err); 
    } 
    cb(); 
    }); 
} 

` 누군가에 의해 작성된 코드입니다. 하지만 나는 커맨드 라인 인수로부터이 스위트의 이름을 얻고 싶다.

gulp test --site [sitename] --suite=smoke 

위의 성명에서 스위트 이름을 어떻게 포착 할 수 있습니까?

+0

나는 꿀꺽 꿀꺽 테스트 --site 사이트 이름 --params "--suite = '연기'"하지만 나에게 오류 "형식 오류를주고있다 시도 : util.env.params.replace 내가 아는 함수 – NewWorld

+0

아니다 어디에서 내 gulp.js 파일을 편집 할 필요가 있습니다. 내 질문은 내가 명령 꿀꺽 꿀꺽 테스트를 지정하는 경우입니다 - 사이트 sitename - 스위트 = '연기'. 어떻게 캡처 할 수 있어야합니다 - 내가 CLI에 입력 한 연기 = ? – NewWorld

답변

0

나는 이것을 작동 시켰습니다.

function testSite(site, cb) { 
    var params = [ 
    site + '/protractor.conf.js', '--suite='+util.env.suite, 
    '--params.timestamp=' + timestamp