1

テスト用の分度器に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 オプションが機能しない理由を提案できますか?

4

0 に答える 0