テスト用の分度器にgulpラッパーを使用しています。メインの分度器分度器ファイル (マルチ機能の下) で以下に指定されている ShardTestFiles オプションが機能しません。私のブラウザはまだ 1 つのインスタンスとして実行されており、テストにはまだ同じ時間がかかります。
分度器バージョン 4.0.9 を使用しています。以下は、プロジェクトフォルダー内のconfファイルのセットアップ方法です。
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 オプションが機能しない理由を提案できますか?