gpt4 book ai didi

automation - cucumberOpts.tags 与 Protractor + CucumberJs + Gulp 的用法

转载 作者:行者123 更新时间:2023-12-05 05:24:30 30 4
gpt4 key购买 nike

大家好!

我安装了以下版本:

"protractor": "~2.5.1",
"gulp-protractor": "1.0.0",
"cucumber": "~0.7.0",

I had installed this, because the project has version < 4 of NPM and Protractor 3.0.0 needs that.

我的 protractor.conf.js

上有以下内容
  framework: 'cucumber',
//frameworkPath: require.resolve('protractor-cucumber-framework'),
cucumberOpts: {
require: 'features/step_definitions/**/*.js',
format: 'pretty',
tags: '@Test',
},

我的 gulp 任务如下所示:

var args = require('yargs').argv;

module.exports = function(gulp, plugins) {
return function (done) {
var protractorConfig = '',
testConfig = '',
environment = args.environment || 'devel',
// tag = args.tag || 'smoke',
baseUrl;

if (!args.baseUrl) {
baseUrl = 'http://test.me/frontend-build-tests/';
} else if (args.baseUrl.match(/^(?:https?\:)?\/\//)) {
baseUrl = args.baseUrl;
} else {
baseUrl = 'http://tests..me/frontend-build-tests/' + args.baseUrl + '/';
}

switch(environment) {
case 'devel' :
protractorConfig = 'e2e/protractor.config.devel.js';
testConfig = '../config/devel';
break;
case 'live' :
protractorConfig = 'e2e/protractor.config.live.js';
testConfig = '../config/live';
break;
case 'remote' :
protractorConfig = 'e2e/protractor.config.remote.js';
testConfig = '../config/live';
break;
default:
case 'build' :
protractorConfig = 'e2e/protractor.config.build.js';
testConfig = '../config/build';
break;
}

gulp.src([
//'./e2e/page-objects/*.js'
'e2e/features/*.feature'
])
.pipe(plugins.protractor.protractor({
configFile: protractorConfig,
args: [
'--verbose',
'--no-stackTrace',
//'--cucumberOpts.tags', tag,
'--params.test.config', testConfig,
'--baseUrl', baseUrl
]
}))
.on('error', function() {
done();
process.exit(1);
});
};
};

我用 npm run test-e2e 命令运行它,它运行一个只包含这两行的脚本

#!/bin/bash -ex

gulp test-e2e "$@"

在上面的配置中,您可能会注意到我已经注释掉了 --cucumberOpts.tags 选项,因为当我使用参数 运行测试时,我无法让它工作npm run test-e2e -- --baseUrl http://local.me --tag "@Test" 它好像没有听到那个参数,因为我可以看到它执行了所有测试而不是标记的.....

那么...我在这里做错了什么?

最佳答案

我将答案留在我自己的帖子中,以防有人遇到同样的问题,发现修改如下,我让它工作,显然参数的顺序是错误的,而且我们没有'不需要用引号括起@ANYTHING ...

gulp 任务:

  var protractorConfig = '',
testConfig = '',
environment = args.environment || 'devel',
tag = args.tag || '@Sanity',
baseUrl;

gulp 任务:

 .pipe(plugins.protractor.protractor({
configFile: protractorConfig,
args: [
'--verbose',
'--no-stackTrace',
'--params.test.config', testConfig,
'--baseUrl', baseUrl,
'--cucumberOpts.tags', tag
]
}))

Protractor 配置文件:

framework: 'cucumber',
//frameworkPath: require.resolve('protractor-cucumber-framework'),
cucumberOpts: {
require: 'features/step_definitions/**/*.js',
format: 'pretty'
},

命令应该是这样的

npm run test-e2e -- --baseUrl http://local.me/e2e/cases/devel/--tag @Sanity

关于automation - cucumberOpts.tags 与 Protractor + CucumberJs + Gulp 的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34321804/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com