Protractor shardTestFiles无法使用gulp
我在测试中使用了量角器的吞咽包装器。下面在我的主量角器量角器文件(在multicapabilities下)中指定的ShardTestFiles选项不起作用。我的浏览器仍在运行,因为只有一个实例,我的测试仍在使用相同的时间 我使用的是量角器版本4.0.9。 下面是如何在项目文件夹中设置我的conf文件Protractor shardTestFiles无法使用gulp,protractor,gulp-protractor,Protractor,Gulp Protractor,我在测试中使用了量角器的吞咽包装器。下面在我的主量角器量角器文件(在multicapabilities下)中指定的ShardTestFiles选项不起作用。我的浏览器仍在运行,因为只有一个实例,我的测试仍在使用相同的时间 我使用的是量角器版本4.0.9。 下面是如何在项目文件夹中设置我的conf文件 var ProtractorConfig = require('../../ProtractorConfig'); exports.config = new ProtractorConfig({
var ProtractorConfig = require('../../ProtractorConfig');
exports.config = new ProtractorConfig({
suites: {test: ['./spec/**/censusCat*.spec.js']},
siteName: '',
isAngular: true,
params: require('./params'),
allScriptsTimeout: 25000,
jasmineNodeOpts: {
defaultTimeoutInterval: 500000,
}
});
以下是我的主量角器文件的设置方式:
'use strict';
require('dotenv').load();
var _ = require('lodash');
var path = require('path');
function ProtractorConfig(options, isMobile) {
// Protractor options
this.seleniumAddress = process.env.SELENIUM_ADDRESS;
this.multiCapabilities = [{
browserName: 'chrome',
maxInstances : 2,
shardTestFiles: true,
}];
this.framework = 'jasmine2';
this.params = require('./params');
this.jasmineNodeOpts = {print: function() {}};
this.plugins = [{path: '../../plugins/protractor-extensions/index.js'}];
this.onPrepare = function() {
var siteName = this.siteName || '';
var isAngular = this.isAngular;
if (isAngular) {
browser.ignoreSynchronization = false;
} else {
browser.ignoreSynchronization = true;
}
browser.resize(1280, 1040);
// Set up globally available objects
global._ = _;
global.params = browser.params;
global.EC = protractor.ExpectedConditions;
browser.params.baseUrl = '';
}.bind(this);
_.merge(this, options);
}
module.exports = ProtractorConfig;
下面是我的gulp文件的结构:
var env = require('envalid');
var gulp = require('gulp');
var path = require('path');
var util = require('gulp-util');
var simpleCommand = require('simple-command');
var binPath = './node_modules/.bin/';
gulp.task('test', function(cb) {
testSite('sites/' + util.env.site, 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=test', '--params.siteName=registry.ngccoin.com'
];
runProtractor(params, function(err) {
cb();
});
}
有人能告诉我为什么我的shardTestFiles选项不起作用吗?你能详细描述一下什么不起作用吗?此外,将您的吞咽配置减少到尽可能小的可重复示例也很有帮助(这里有很多自定义配置,这让人很难理解。@NickTomlin我已经对此进行了详细解释。我还尝试减少gulp文件。我使用了两个dragrator.conf.js文件。一个是在主测试套件级别定义全局设置,另一个是每个项目的内部文件夹。我建议进一步减少到实际需要的位置y有效。试着使用一个非动态量角器文件,然后从那里慢慢构建。你能详细描述一下什么不起作用吗?另外,将你的吞咽配置减少到尽可能小的可复制示例也会有帮助(这里有很多自定义配置,这让人很难理解。@NickTomlin我已经对此进行了详细解释。我还尝试减少gulp文件。我使用了两个dragrator.conf.js文件。一个是在主测试套件级别定义全局设置,另一个是每个项目的内部文件夹。我建议进一步减少到实际需要的位置y工作。尝试使用单个非动态量角器文件,然后从那里慢慢构建。