Файлы shardTestFiles не работают с gulp

#protractor #gulp-protractor

#транспортир #gulp-транспортир

Вопрос:

Я использую оболочку gulp для транспортира для своих тестов. Опция ShardTestFiles, указанная ниже в моем основном файле protractor protractor (в разделе multicapabilities), не работает. Мой браузер по-прежнему работает только как 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 не работает?

Комментарии:

1. Можете ли вы подробнее описать, что именно не работает? Кроме того, было бы полезно сократить вашу конфигурацию gulp до минимально возможного воспроизводимого примера (здесь много пользовательских настроек, которые затрудняют понимание.

2. @NickTomlin Я объяснил это немного подробнее. Также попытался уменьшить файл gulp. Я использую два protractor.conf.js досье. Один из них находится на уровне основного набора тестов для определения глобальных настроек, а другой — внутри папки каждого проекта.

3. Я бы предложил еще больше сократить это до того, где это действительно работает. Попробуйте использовать один нединамический файл транспортира, а затем медленно создавать оттуда.