我正在尝试为与CucumberJS集成的TestCafe项目之一(链接:https://github.com/rquellh/testcafe-cucumber)设置WebStorm。
到目前为止,我可以使用WebStorm帮助对调试配置进行排序,但是,当我调试项目时,它将向控制台抛出以下错误:
我正在传递以下Cucuming.js参数:
--require testlab/**/step_definitions/*.js --tags @debug
在调试时,出现以下错误:
ReferenceError: testController is not defined
at World.<anonymous>
Test ignored.
Test ignored.
Failures:
1) Scenario: Searching for TestCafe on GitHub #
testlab\features\finAPIDemo.feature:6
× Given I open the GitHub page # testlab\step_definitions\github.js:5
ReferenceError: testController is not defined
我期望调试能够正确执行,但是,它无法正常工作,我认为替代方法是编写一个js配置并按照CucumberJS文档页面中的说明进行传递,但是,我不确定如何实现那个。
任何输入或帮助都会受到赞赏。
答案 0 :(得分:2)
您需要为要调试的场景添加@debug
指令。
请参阅this帮助主题中的完整设置。
答案 1 :(得分:1)
仅当在使用--tags @debug
的情况下运行Cucumber时才会发生此错误,并且它不是特定于IDE的-在使用node node_modules/cucumber/bin/cucumber-js --tags @debug
的终端中启动测试时,您将面临相同的问题:
node node_modules/cucumber/bin/cucumber-js --tags @debug
0 scenarios
0 steps
0m00.000s
E:\WebstormProjects\testcafe-cucumber\features\support\hooks.js:77
if (testController.testRun.lastDriverStatusResponse === 'test-done-confirmation') {
^
ReferenceError: testController is not defined
at Timeout.checkLastResponse [as _onTimeout] (E:\WebstormProjects\testcafe-cucumber\features\support\hooks.js:77:9)
at ontimeout (timers.js:436:11)
at tryOnTimeout (timers.js:300:5)
at listOnTimeout (timers.js:263:5)
at Timer.processTimers (timers.js:223:10)
我不确定您为什么需要此选项...据我所知,您的项目中没有标有@debug
的方案。
我建议使用标准的Cucumber.js运行配置进行调试。对我来说效果很好-运行测试,并命中断点:
答案 2 :(得分:1)
在hooks.js下,我已使用const分配更新了import语句,并且对我有用:
已替换:
'import errorHandling from "./support/errorHandling.js";\n' +
'import testControllerHolder from "./support/testControllerHolder.js";\n\n' +
与
'const errorHandling = require("./support/errorHandling.js");\n' +
'const testControllerHolder = require("./support/testControllerHolder.js");\n\n' +
答案 3 :(得分:0)
我建议使用黄瓜配置文件并调用该配置文件,而不要使用cli命令。查看收到的错误,看起来好像缺少更多必需的目录,例如自定义世界目录?