场景大纲不适用于CucumberJS

场景大纲不适用于CucumberJS,cucumber,cucumberjs,Cucumber,Cucumberjs,我正在用WebDrivero和测试练习CucumberJS。我有以下功能文件和步骤定义,这是工作良好 功能文件 Feature: Application Title Page title should be context sensitive Scenario: Page loads with correct title When Page "/" is loaded Then Page title is "WebdriverIO - WebDr

我正在用WebDrivero和测试练习CucumberJS。我有以下功能文件和步骤定义,这是工作良好

功能文件

Feature: Application Title
    Page title should be context sensitive

    Scenario: Page loads with correct title
        When Page "/" is loaded
        Then Page title is "WebdriverIO - WebDriver bindings for Node.js"
D:\playground\webdriverio-cucumberjs>npm run e2e

> webdriverio-cucumberjs@1.0.0 e2e D:\playground\webdriverio-cucumberjs
> wdio


[13:11:45]  COMMAND     POST     "/wd/hub/session"
[13:11:45]  DATA                {"desiredCapabilities":{"javascriptEnabled":true,"locationContextEnabled":true,"handlesAlerts":true,"rotatable":true,"maxInstances":5,"browserName":"chrome","loggingPrefs":{"browser":"ALL","driver":"ALL"},"requestOrigins":{"url":"http://webdriver.io","version":"4.12.0","name":"webdriverio"}}}
[13:11:49]  INFO        SET SESSION ID d206c5af3fcb467668d5f1d21135bd5a
[13:11:49]  RESULT              {"applicationCacheEnabled":false,"rotatable":false,"mobileEmulationEnabled":false,"networkConnectionEnabled":false,"chrome":{"chromedriverVersion":"2.36.540470 (e522d04694c7ebea4ba8821272dbef4f9b818c91)","userDataDir":"C:\\Users\\BilalM\\AppData\\Local\\Temp\\scoped_dir2072_18134"},"takesHeapSnapshot":true,"pageLoadStrategy":"normal","databaseEnabled":false,"handlesAlerts":true,"hasTouchScreen":false,"version":"65.0.3325.181","platform":"Windows NT","browserConnectionEnabled":false,"nativeEvents":true,"acceptSslCerts":false,"acceptInsecureCerts":false,"locationContextEnabled":true,"webStorageEnabled":true,"browserName":"chrome","takesScreenshot":true,"javascriptEnabled":true,"cssSelectorsEnabled":true,"setWindowRect":true,"unexpectedAlertBehaviour":""}
ERROR: Cannot read property 'steps' of undefined
chrome
Type    at CucumberEventListener.onTestStepPrepared (D:\playground\webdriverio-cucumberjs\node_modules\wdio-cucumber-framework\build\cucumberEventListener.js:186:44)
    at emitOne (events.js:101:20)
    at EventEmitter.emit (events.js:188:7)
    at TestCaseRunner.emit (D:\playground\webdriverio-cucumberjs\node_modules\cucumber\lib\runtime\test_case_runner.js:94:29)
    at TestCaseRunner.emitPrepared (D:\playground\webdriverio-cucumberjs\node_modules\cucumber\lib\runtime\test_case_runner.js:127:12)
    at TestCaseRunner.<anonymous> (D:\playground\webdriverio-cucumberjs\node_modules\cucumber\lib\runtime\test_case_runner.js:219:14)
    at next (native)
    at tryCatcher (D:\playground\webdriverio-cucumberjs\node_modules\bluebird\js\release\util.js:16:23)
    at PromiseSpawn._promiseFulfilled (D:\playground\webdriverio-cucumberjs\node_modules\bluebird\js\release\generators.js:97:49)
    at TestCaseRunner.<anonymous> (D:\playground\webdriverio-cucumberjs\node_modules\bluebird\js\release\generators.js:201:15)
    at TestCaseRunner.run (D:\playground\webdriverio-cucumberjs\node_modules\cucumber\lib\runtime\test_case_runner.js:236:22)
    at Runtime.<anonymous> (D:\playground\webdriverio-cucumberjs\node_modules\cucumber\lib\runtime\index.js:113:51)
    at next (native)
    at tryCatcher (D:\playground\webdriverio-cucumberjs\node_modules\bluebird\js\release\util.js:16:23)
    at PromiseSpawn._promiseFulfilled (D:\playground\webdriverio-cucumberjs\node_modules\bluebird\js\release\generators.js:97:49)
    at Runtime.<anonymous> (D:\playground\webdriverio-cucumberjs\node_modules\bluebird\js\release\generators.js:201:15)
[13:11:49]  COMMAND     DELETE   "/wd/hub/session/d206c5af3fcb467668d5f1d21135bd5a"
[13:11:49]  DATA                {}
------------------------------------------------------------------
[chrome #0-0] Session ID: d206c5af3fcb467668d5f1d21135bd5a
[chrome #0-0] Spec: D:\playground\webdriverio-cucumberjs\e2e\features\app-titles.feature
[chrome #0-0] Running: chrome
[chrome #0-0]
[chrome #0-0] Application Title
[chrome #0-0]
[chrome #0-0]     Page loads with correct title
[chrome #0-0]
[chrome #0-0]         Page loads with correct title
[chrome #0-0]
[chrome #0-0]
[chrome #0-0]


Cannot write xunit report: empty or invalid 'outputDir'.
Cannot write json report: empty or invalid 'outputDir'.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! webdriverio-cucumberjs@1.0.0 e2e: `wdio`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the webdriverio-cucumberjs@1.0.0 e2e script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\#$#$#$#$\AppData\Roaming\npm-cache\_logs\2018-04-06T11_11_49_985Z-debug.log
步骤定义

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

const webdriverio = require('webdriverio');

When(/^Page \"(.*)\" is loaded$/, (page) => {
    browser.url(page);
});

Then(/^Page title is \"(.*)\"$/, (title) => {
    assert(browser.title(), title);
});

但当我将场景更改为场景大纲时,它停止了工作,出现了错误。以下是我在功能文件中所做的更改

功能文件(已更新)

Feature: Application Title
    Page title should be context sensitive

    Scenario Outline: Page loads with correct title
    When Page "<url>" is loaded
    Then Page title is "<title>"

    Examples:
    | url         | title                                        |
    | /           | WebdriverIO - WebDriver bindings for Node.js |
    | /guide.html | WebdriverIO - Developer Guide                |
功能:应用程序标题
页面标题应与上下文相关
场景大纲:使用正确的标题加载页面
加载页“”时
则页面标题为“”
示例:
|url |标题|
|/| webdrivero-Node.js的WebDriver绑定|
|/guide.html | WebdriverIO-开发者指南|
控制台

Feature: Application Title
    Page title should be context sensitive

    Scenario: Page loads with correct title
        When Page "/" is loaded
        Then Page title is "WebdriverIO - WebDriver bindings for Node.js"
D:\playground\webdriverio-cucumberjs>npm run e2e

> webdriverio-cucumberjs@1.0.0 e2e D:\playground\webdriverio-cucumberjs
> wdio


[13:11:45]  COMMAND     POST     "/wd/hub/session"
[13:11:45]  DATA                {"desiredCapabilities":{"javascriptEnabled":true,"locationContextEnabled":true,"handlesAlerts":true,"rotatable":true,"maxInstances":5,"browserName":"chrome","loggingPrefs":{"browser":"ALL","driver":"ALL"},"requestOrigins":{"url":"http://webdriver.io","version":"4.12.0","name":"webdriverio"}}}
[13:11:49]  INFO        SET SESSION ID d206c5af3fcb467668d5f1d21135bd5a
[13:11:49]  RESULT              {"applicationCacheEnabled":false,"rotatable":false,"mobileEmulationEnabled":false,"networkConnectionEnabled":false,"chrome":{"chromedriverVersion":"2.36.540470 (e522d04694c7ebea4ba8821272dbef4f9b818c91)","userDataDir":"C:\\Users\\BilalM\\AppData\\Local\\Temp\\scoped_dir2072_18134"},"takesHeapSnapshot":true,"pageLoadStrategy":"normal","databaseEnabled":false,"handlesAlerts":true,"hasTouchScreen":false,"version":"65.0.3325.181","platform":"Windows NT","browserConnectionEnabled":false,"nativeEvents":true,"acceptSslCerts":false,"acceptInsecureCerts":false,"locationContextEnabled":true,"webStorageEnabled":true,"browserName":"chrome","takesScreenshot":true,"javascriptEnabled":true,"cssSelectorsEnabled":true,"setWindowRect":true,"unexpectedAlertBehaviour":""}
ERROR: Cannot read property 'steps' of undefined
chrome
Type    at CucumberEventListener.onTestStepPrepared (D:\playground\webdriverio-cucumberjs\node_modules\wdio-cucumber-framework\build\cucumberEventListener.js:186:44)
    at emitOne (events.js:101:20)
    at EventEmitter.emit (events.js:188:7)
    at TestCaseRunner.emit (D:\playground\webdriverio-cucumberjs\node_modules\cucumber\lib\runtime\test_case_runner.js:94:29)
    at TestCaseRunner.emitPrepared (D:\playground\webdriverio-cucumberjs\node_modules\cucumber\lib\runtime\test_case_runner.js:127:12)
    at TestCaseRunner.<anonymous> (D:\playground\webdriverio-cucumberjs\node_modules\cucumber\lib\runtime\test_case_runner.js:219:14)
    at next (native)
    at tryCatcher (D:\playground\webdriverio-cucumberjs\node_modules\bluebird\js\release\util.js:16:23)
    at PromiseSpawn._promiseFulfilled (D:\playground\webdriverio-cucumberjs\node_modules\bluebird\js\release\generators.js:97:49)
    at TestCaseRunner.<anonymous> (D:\playground\webdriverio-cucumberjs\node_modules\bluebird\js\release\generators.js:201:15)
    at TestCaseRunner.run (D:\playground\webdriverio-cucumberjs\node_modules\cucumber\lib\runtime\test_case_runner.js:236:22)
    at Runtime.<anonymous> (D:\playground\webdriverio-cucumberjs\node_modules\cucumber\lib\runtime\index.js:113:51)
    at next (native)
    at tryCatcher (D:\playground\webdriverio-cucumberjs\node_modules\bluebird\js\release\util.js:16:23)
    at PromiseSpawn._promiseFulfilled (D:\playground\webdriverio-cucumberjs\node_modules\bluebird\js\release\generators.js:97:49)
    at Runtime.<anonymous> (D:\playground\webdriverio-cucumberjs\node_modules\bluebird\js\release\generators.js:201:15)
[13:11:49]  COMMAND     DELETE   "/wd/hub/session/d206c5af3fcb467668d5f1d21135bd5a"
[13:11:49]  DATA                {}
------------------------------------------------------------------
[chrome #0-0] Session ID: d206c5af3fcb467668d5f1d21135bd5a
[chrome #0-0] Spec: D:\playground\webdriverio-cucumberjs\e2e\features\app-titles.feature
[chrome #0-0] Running: chrome
[chrome #0-0]
[chrome #0-0] Application Title
[chrome #0-0]
[chrome #0-0]     Page loads with correct title
[chrome #0-0]
[chrome #0-0]         Page loads with correct title
[chrome #0-0]
[chrome #0-0]
[chrome #0-0]


Cannot write xunit report: empty or invalid 'outputDir'.
Cannot write json report: empty or invalid 'outputDir'.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! webdriverio-cucumberjs@1.0.0 e2e: `wdio`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the webdriverio-cucumberjs@1.0.0 e2e script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\#$#$#$#$\AppData\Roaming\npm-cache\_logs\2018-04-06T11_11_49_985Z-debug.log
D:\playway\webdriverio cucucumberjs>npm run e2e
>webdriverio-cucumberjs@1.0.0e2e D:\playder\webdriverio cucumberjs
>wdio
[13:11:45]指挥所“/wd/hub/session”
[13:11:45]数据{“desiredCapabilities”:{“javascriptEnabled”:true,“locationContextEnabled”:true,“handlesAlerts”:true,“rotatable”:true,“maxInstances”:5,“browserName”:“chrome”,“loggingPrefs”:{“browser”:“ALL”,“driver”:“ALL”},“requestOrigins”:{“url”:http://webdriver.io“,”版本“:”4.12.0“,”名称“:”WebDrivero“}”
[13:11:49]信息集会话ID D206C5AF3FCB46768D5F1D21135BD5A
[13:11:49]结果{“applicationCacheEnabled”:false,“rotatable”:false,“mobileEmulationEnabled”:false,“networkConnectionEnabled”:false,“chrome”:{“chromedriverVersion”:“2.36.540470(E522D04694C7EBEA4BA8821272BEF4F9B818C91)”,“userDataDir”:“C:\\Users\\BilalM\\AppData\\Local\\Temp\\scoped\U dir2072\U 18134”,“takesHeapSnapshot”:true,“pageLoadStrategy:“正常”,“数据库启用”:false,“handlesAlerts”:true,“hasTouchScreen”:false,“版本”:“65.0.3325.181”,“平台”:“Windows NT”,“browserConnectionEnabled”:false,“nativeEvents”:true,“acceptSslCerts”:false,“AcceptsSecureCerts”:false,“locationContextEnabled”:true,“WebStorage启用”:true,“browserName”:“chrome”,“takesScreenshot”:true,“javascriptEnabled”:true,“CSSSelectorEnabled”:true,“setWindowRect”:true,“unexpectedAlertBehaviour”:“”}
错误:无法读取未定义的属性“步骤”
铬
在CucumberEventListener.onTestStepPrepared处键入(D:\playway\webdrivero cucucumberjs\node\u modules\wdio cucucumber framework\build\cucucucumberEventListener.js:186:44)
在emitOne(events.js:101:20)
在EventEmitter.emit(events.js:188:7)
在TestCaseRunner.emit(D:\playway\webdriverio cucucumberjs\node\u modules\cucumber\lib\runtime\test\u case\u runner.js:94:29)
在TestCaseRunner.js上(D:\playway\webdriverio cucucumberjs\node\u modules\cucumber\lib\runtime\test\u case\u runner.js:127:12)
在TestCaseRunner


我是做错了什么,还是这与CucumberJS有关?

目前看来,这项功能有漏洞。您可以在wdio框架GitHub页面上跟踪该问题:


我花了一整天的时间尝试解决方法,但我想我们只能等待修复。

删除场景最后一步和示例表之间的空白,然后再试一次。@ZohaibJawaid,您是否阅读了控制台输出?-对于xunit和json,您的报告文件夹不存在,这似乎是一个问题。在运行测试之前,您将报告和屏幕截图放入的文件夹应该存在-它在运行时不会这样做。-至少,这是我的经验。它试图向报表发送某些内容,但无法执行,因为目录不存在。您在哪里指定了“outputDit”?我根本没有指定
outputDir
。我使用WebDrivero cli进行了设置。但这个问题与报告无关,因为即使我删除了xunit和junit reporters,它仍然会失败,并出现相同的错误,即,
无法读取未定义的