【问题标题】:Step Definitions not implemented - Cucumber with Angular9 & Serenity/JS步骤定义未实现 - 带有 Angular9 和 Serenity/JS 的 Cucumber
【发布时间】:2020-07-22 21:29:59
【问题描述】:

当我使用 protractor e2e/protractor.conf.js 运行 Cucumber 步骤定义时,测试报告者返回:

Logging in to application: User navigates to site from outside company network

  Given User is not on company network
    ☕ImplementationPendingError: Step not implemented

☕Implementation pending (51ms)

  ImplementationPendingError: Step not implemented
      at CucumberEventProtocolAdapter.outcomeFrom (C:\Users\akokayi\***-Mobile-Dashboard\node_modules\@serenity-js\cucumber\src\listeners\CucumberEventProtocolAdapter.ts:171:54)
      at EventEmitter.<anonymous> (C:\Users\akokayi\***-Mobile-Dashboard\node_modules\@serenity-js\cucumber\src\listeners\CucumberEventProtocolAdapter.ts:158:28)
      at EventEmitter.emit (events.js:327:22)
================================================================================
Execution Summary

Logging in to application: 1 pending, 1 total (51ms)

Total time: 51ms
Scenarios:  1
================================================================================
[17:13:19] I/launcher - 0 instance(s) of WebDriver still running
[17:13:19] I/launcher - chrome #01 failed 1 test(s)
[17:13:19] I/launcher - overall: 1 failed spec(s)
[17:13:19] E/launcher - Process exited with error code 1
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! workshop1@0.0.0 test-cucumber: `protractor e2e/protractor.conf.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the workshop1@0.0.0 test-cucumber script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

这是步骤定义,用 Serenity/JS 编写:

const John = Actor.named('John').whoCan(BrowseTheWeb.using(protractor.browser), browser.waitForAngularEnabled(true));

Given(/User is not on company network/, () => {
  John.attemptsTo(
    UseAngular.disableSynchronisation(),
    Navigate.to("google.com")
  ); 
});


When(/User navigates to application/, function () {
  John.attemptsTo(
    UseAngular.enableSynchronisation(),
    StartLocalServer.onPort(4200),
    Navigate.to('localhost:4200'));
});

Then(/Redirected to company homepage/, function () {
  John.attemptsTo(
    UseAngular.disableSynchronisation(),
    Navigate.to("***.org"),
    Ensure.that(Website.url(), equals('***.org'))
  );
});

我试过了:

  • 调整我的protractor.conf.js文件,没发现什么问题 那里
  • 卸载并重新安装 serenity/js &
    的依赖项 黄瓜
  • 重写我的步骤定义
  • 在每个步骤定义中强制返回“ExecutionSuccessful”
  • 将我的构建与量角器黄瓜示例进行比较 Serenity/JS 的 GitHub

这些事情都导致了同样的错误。

为什么我的步骤定义没有被读取/执行?

【问题讨论】:

    标签: angular protractor cucumberjs cucumber-serenity serenity-js


    【解决方案1】:

    对我来说,(我使用 Angular),cucumberOpts.require 需要指向相对于项目根目录的目录,而不是相对于 protractor.conf.js 文件的目录。

    所以我需要使用e2e/src/specs/**/*.ts而不是specs/**/*.ts

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-27
      • 2022-08-19
      • 1970-01-01
      相关资源
      最近更新 更多