Почему транспортир огурца не может найти файл шага с последней версией огурца в фреймворке транспортира огурца - PullRequest
0 голосов
/ 01 августа 2020

Я работаю с фреймворком для огурца транспортира, и, поскольку я давно наблюдал, что огурец не может найти файл spe c в проекте. Я использовал последнюю версию огурца 6.0.3, он не может найти файл spe c, но тот же код, который я использовал, используя огурец 1.3.3 .. может ли кто-нибудь сказать мне, в чем разница с этими версиями? есть ли что-то, что мне нужно обновить для 6.0.3

Cucumber Dependency - 1.3.3

"cucumber": {
      "version": "1.3.3",
      "resolved": "https://registry.npmjs.org/cucumber/-/cucumber-1.3.3.tgz",
      "integrity": "sha1-Za+2Xy+T9y2teN8qterPFGCf7C8=",
      "requires": {
        "camel-case": "^3.0.0",
        "cli-table": "^0.3.1",
        "co": "^4.6.0",
        "colors": "^1.1.2",
        "commander": "^2.9.0",
        "duration": "^0.2.0",
        "figures": "1.7.0",
        "gherkin": "^4.1.0",
        "glob": "^7.0.0",
        "is-generator": "^1.0.2",
        "lodash": "^4.0.0",
        "stack-chain": "^1.3.5",
        "stacktrace-js": "^1.3.0"
      }

Зависимость от огурца 6.0.3 Последняя версия


"cucumber": {
      "version": "6.0.3",
      "resolved": "https://registry.npmjs.org/cucumber/-/cucumber-6.0.3.tgz",
      "integrity": "sha512-FSx7xdAQfFjcxp/iRBAuCFSXp2iJP1tF2Q5k/a67YgHiYbnwsD9F+UNv9ZG90LFHNsNQhb+67AmVxHkp4JRDpg==",
      "dev": true,
      "requires": {
        "assertion-error-formatter": "^3.0.0",
        "bluebird": "^3.4.1",
        "cli-table3": "^0.5.1",
        "colors": "^1.1.2",
        "commander": "^3.0.1",
        "cucumber-expressions": "^8.0.1",
        "cucumber-tag-expressions": "^2.0.2",
        "duration": "^0.2.1",
        "escape-string-regexp": "^2.0.0",
        "figures": "^3.0.0",
        "gherkin": "5.0.0",
        "glob": "^7.1.3",
        "indent-string": "^4.0.0",
        "is-generator": "^1.0.2",
        "is-stream": "^2.0.0",
        "knuth-shuffle-seeded": "^1.0.6",
        "lodash": "^4.17.14",
        "mz": "^2.4.0",
        "progress": "^2.0.0",
        "resolve": "^1.3.3",
        "serialize-error": "^4.1.0",
        "stack-chain": "^2.0.0",
        "stacktrace-js": "^2.0.0",
        "string-argv": "^0.3.0",
        "title-case": "^2.1.1",
        "util-arity": "^1.0.2",
        "verror": "^1.9.0"
      }

StepDef

module.exports=function(){
    this.Given(/^Open the browser and Load the URL$/,async function(){
        await firstBrowser.get(properties.get("url1"));
        browser.logger.info("Title of the window is :"+await browser.getTitle());
        //screenshots.takesScreenshot("filename");
    });
    
    this.When(/^User entered the text in the search box$/,async function(){
        firstBrowser.sleep(3000);
        await page1.email().sendKeys(testData.Login.CM[0].Username);
        browser.sleep(3000);
        await page1.password().sendKeys(testData.Login.CM[0].Password);
    });
}

Файл конфигурации

exports.config = {

//seleniumAddress: 'http://localhost:4444/wd/hub',
getPageTimeout: 60000,
allScriptsTimeout: 500000,
directConnect:true,

framework: 'custom',
// path relative to the current config file
frameworkPath: require.resolve('protractor-cucumber-framework'),
capabilities: {
    'browserName': 'chrome'
},
ignoreUncaughtExceptions:true,
// Spec patterns are relative to this directory.
specs: [
    'H:\\workspace\\Protractor_Cucumber\\src\\FeatureFiles\\Test.feature'
],

cucumberOpts: {
    require: 'H:\\workspace\\Protractor_Cucumber\\src\\StepDefFiles\\*.js',
    tags: false,
    profile: false,
    'no-source': true
},
 onPrepare: function () {
     browser.waitForAngularEnabled(false);
const {Given, Then, When, Before} = require('cucumber');

  }
};

Я не использовал никаких огурцов в своих тестовых сценариях .. Что заставляет их работать по-другому, может ли какая-то помощь в этом?

1 Ответ

0 голосов
/ 02 августа 2020

Одна из причин - это Then/When/Given изменение использования в cucumber 6.x, вы можете изменить несколько пошаговых функций, чтобы убедиться в этом.

Для 1.x файл пошаговых функций выглядит как

module.exports = function () {

  this.Then(/^Then the response status is (.*)$/, function (status) {
    assert.equal(this.responseStatus, status)
  });
  this.When(//, ...)
}

Для файла функции шага 6.x выглядит как

const { Then, When } = require('cucumber');

Then(/^the response status is (.*)$/, function (status) {
  assert.equal(this.responseStatus, status)
});

When(//,...)

Другая возможная причина - необходимость обновления версии protractor-cucumber-framework, которая совместима с cucumber@6.x

...