量angular器吞咽运行一个单一的spec文件

这是我的量angular器conf文件

exports.config = {framework:'jasmine',

seleniumAddress: 'http://localhost:4444/wd/hub', specs: ['../../e2e/smoke-test/*.spec.js'], ignoreSynchronization: 'true', jasmineNodeOpts: { defaultTimeoutInterval: 2500000, allScriptsTimeout: 25000000 } }; 

这是我的gulp conf文件

 'use strict'; var path = require('path'); var gulp = require('gulp'); // Protractor configurations to open browser var protractor = require("gulp-protractor").protractor; var spawn = require('child_process').spawn; var browserSync = require('browser-sync'); var $ = require('gulp-load-plugins')(); // Downloads the selenium webdriver gulp.task('webdriver-update', $.protractor.webdriver_update); gulp.task('webdriver-standalone', $.protractor.webdriver_standalone); // Protractor with selenium configuration to open browser //run webdriver method function runWebdriver(callback) { spawn('webdriver-manager', ['start'], { stdio: 'inherit' }).once('close', callback); } //run protractor configurations method function runProtractorSeleniumConfig() { gulp.src('./**/*-page.spec.js') .pipe(protractor({ configFile: './e2e/conf/smoke-test-conf.js' })) .on('error', function (e) { throw e; }); } //execute protractor.config after webdriver is executed function runWebdriverProtractor(){ // runWebdriver(runWebdriver); runWebdriver(runProtractorSeleniumConfig); } //put them into gulp.task('e2e:smoke-test', runWebdriverProtractor); // run on dist //gulp.task('e2e:dist', ['serve:e2e-dist', 'webdriver-update'], runProtractor); 

现在我定义了一个吞咽的任务

 gulp e2e:smoke-test 

我在烟雾testing下运行所有​​规格如果我想运行一个烟雾规格文件,或者如果我想运行一个规格/testing,我该怎么办?

我通过传递一个单独的文件来解决这个问题。

 function runProtractorSeleniumConfig(path) { gulp.src(getFile(path)) .pipe(protractor({ configFile: 'ProtractorConfigFile' })) .on('error', function (e) { throw e; }); } function getFile(ext){ if(ext == '--regression'){ return 'RegressionTestCaseFilePath' } else{ return 'TestCaseFilePath' } } 

//执行webdriver后执行protractor.config

 function runWebdriverProtractor(str){ // runWebdriver(runWebdriver); runWebdriver(runProtractorSeleniumConfig(str)); } 

//运行烟雾testing命令configuration

 gulp.task('e2e:smoke-test', function(){ runWebdriverProtractor(process.argv[3]) }); 

现在我可以通过简单地使用这个运行回归/ smokde文件

 gulp e2e:smoke-test --smoke 

干杯!!

用jasmine2你可以使用正则expression式来过滤testing。 也许你可以在你的testing中join@smoke,@regressions之类的东西,然后通过传递grep标志来运行这些东西:

 describe('Test Spec @smoke', function () { ... }) 

并在protractor.conf.js中:

 exports.config = { jasmineNodeOpts: { grep: '@smoke', } };