Настройка транспортира с помощью cucumberjs (транспортир-огурец-каркас)

cucumberjs --version 1.2.2
protractor --version 4.0.1
Both installed globally via npm 

Я попытался перейти по этим 2 ссылкам, чтобы настроить мой Protractor с более новыми cucumberJs: Protractor-cucumber-framework: https://github.com/mattfritz/protractor-cucumber-framework cucumberJs: https://github.com/cucumber/cucumber-js

К сожалению, когда я запускаю свои тесты, они всегда проходят независимо от того, провалились ли тесты или нет.

И иногда они превышают 5000 миллисекунд, которые я решил, выполнив это:

exports.config = {
  // set to "custom" instead of cucumber.
  framework: 'custom',

  // path relative to the current config file
  frameworkPath: require.resolve('protractor-cucumber-framework'),

  // relevant cucumber command line options
  cucumberOpts: {
        require: [
          conf.paths.e2e + '/steps/**/*Steps.js',
          conf.paths.e2e + '/support/env.js',
        ],
        format: 'pretty'
      }
};

Обратите внимание, что я включил мои env.js выше в блок опций cucumber, и вот мой контент env.js:

// features / support / env.js

var configure = function () {
  this.setDefaultTimeout(60*1000);
};

module.exports = configure;

Также у меня есть этот world.js, который я не знаю, как использовать в своих тестах:

// features/support/world.js
var zombie = require('zombie');
function World() {
  this.browser = new zombie(); // this.browser will be available in step definitions

  this.visit = function (url, callback) {
    this.browser.visit(url, callback);
  };
}

module.exports = function() {
  this.World = World;
};

Я заглянул в "zoombie.js", и это похоже на браузер без головы, о котором я не забочусь, потому что команда транспортировщиков не рекомендует нам использовать браузеры без головы, такие как PhantomJS; см.: http://www.protractortest.org/ ("Примечание. Мы не рекомендуем использовать PhantomJS для тестов с Protractor. Существует много сообщений о проблемах, связанных с падением PhantomJS и его поведением, отличным от реального браузеры.")

Я также попытался вернуть обратный вызов внутри потока управления Protractor с помощью: return browser.controlFlow(). Execute(callback); но это, кажется, не работает, вместо этого он выдает эту ошибку:

функция принимает обратный вызов и возвращает обещание

Мой файл определения шага выглядит так:

 module.exports = function () {
      this.Given(/^I am logged in as "([^"]*)" for "([^"]*)"$/, function (username, password, callback) {
        return app.getShell().getLogonPage().logonWithoutAngular(username, password, org).then(null, function (error) {
          console.error('Sorry an error occurred: ' + error);
          throw error;
        });
        return browser.controlFlow().execute(callback); //returning the callback within the Protractor controlFlow queue
      });

Я думаю, что моя самая большая путаница в том, что я не знаю, нужен ли мне этот world.js для запуска моих тестов в браузере Chrome; Меня не волнует браузер без головы zombie.js, так как они используются на странице gitub cucumberjs: https://github.com/cucumber/cucumber-js

Возникают ли у меня все эти проблемы при настройке моих тестов транспортира с более новыми cucumberJs из-за этого world.js? В основном все мои тесты проходят, все зеленые, даже когда я специально выбрасываю неисправный футляр. Срыв; надеюсь, кто-то может помочь

0 ответов

Другие вопросы по тегам