Automation cucumberOpts.tags使用量角器+;黄瓜;吞咽

Automation cucumberOpts.tags使用量角器+;黄瓜;吞咽,automation,protractor,e2e-testing,cucumberjs,gulp-protractor,Automation,Protractor,E2e Testing,Cucumberjs,Gulp Protractor,大家好 我已安装以下版本: "protractor": "~2.5.1", "gulp-protractor": "1.0.0", "cucumber": "~0.7.0", 我安装了这个,因为这个项目的NPM版本

大家好

我已安装以下版本:

"protractor": "~2.5.1",
"gulp-protractor": "1.0.0",
"cucumber": "~0.7.0",
我安装了这个,因为这个项目的NPM版本<4,而Digrator 3.0.0需要这个版本

我在我的
dragrator.conf.js

  framework: 'cucumber',
    //frameworkPath: require.resolve('protractor-cucumber-framework'),
    cucumberOpts: {
        require: 'features/step_definitions/**/*.js',
        format: 'pretty',
        tags: '@Test',
    },
我的吞咽任务如下所示:

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 "$@"
在上面的配置中,您可能会注意到,当我使用参数
npm run test-e2e--baseUrl运行测试时,我注释掉了
--cucucumberOpts.tags
选项,因为我无法让它工作http://local.me --标记“@Test”
就像它没有听到那个参数一样,因为我可以看到它执行所有的测试,而不是标记的测试


所以。。。我做错了什么

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

吞咽任务:

  var protractorConfig = '',
        testConfig = '',
        environment = args.environment || 'devel',
        tag = args.tag || '@Sanity',
        baseUrl;
 .pipe(plugins.protractor.protractor({
            configFile: protractorConfig,
            args: [
                '--verbose',
                '--no-stackTrace',
                '--params.test.config', testConfig,
                '--baseUrl', baseUrl,
                '--cucumberOpts.tags', tag
            ]
        }))
framework: 'cucumber',
//frameworkPath: require.resolve('protractor-cucumber-framework'),
cucumberOpts: {
    require: 'features/step_definitions/**/*.js',
    format: 'pretty'
},

吞咽任务:

  var protractorConfig = '',
        testConfig = '',
        environment = args.environment || 'devel',
        tag = args.tag || '@Sanity',
        baseUrl;
 .pipe(plugins.protractor.protractor({
            configFile: protractorConfig,
            args: [
                '--verbose',
                '--no-stackTrace',
                '--params.test.config', testConfig,
                '--baseUrl', baseUrl,
                '--cucumberOpts.tags', tag
            ]
        }))
framework: 'cucumber',
//frameworkPath: require.resolve('protractor-cucumber-framework'),
cucumberOpts: {
    require: 'features/step_definitions/**/*.js',
    format: 'pretty'
},

量角器配置文件:

  var protractorConfig = '',
        testConfig = '',
        environment = args.environment || 'devel',
        tag = args.tag || '@Sanity',
        baseUrl;
 .pipe(plugins.protractor.protractor({
            configFile: protractorConfig,
            args: [
                '--verbose',
                '--no-stackTrace',
                '--params.test.config', testConfig,
                '--baseUrl', baseUrl,
                '--cucumberOpts.tags', tag
            ]
        }))
framework: 'cucumber',
//frameworkPath: require.resolve('protractor-cucumber-framework'),
cucumberOpts: {
    require: 'features/step_definitions/**/*.js',
    format: 'pretty'
},
命令应该是这样的


npm运行test-e2e--baseUrlhttp://local.me/e2e/cases/devel/ --标记@Sanity

如果省略
--baseUrl怎么办http://local.me
只留下
--标记
参数-有什么区别吗?谢谢,没什么区别!但是刚刚发现我做错了什么!我会回答我自己的问题!