如何在Visual Studio代码(VSCode)中调试Cucumber?

7 javascript-debugger visual-studio-debugging cucumberjs visual-studio-code

我试图在Visual Studio代码中调试Cucumber方案,并在下面进行了更改launch.json.

{
            "name": "e2e",
            "type": "node",
            "request": "launch",
            "program": "${workspaceRoot}\\node_modules\\.bin\\cucumber-js",
            "stopOnEntry": false,
            "args": ["--no-timeouts", "--colors"],
            "cwd": "${workspaceRoot}",
            "runtimeExecutable": null,
            "outFiles": [
                "${workspaceRoot}\\features\\step_definitions\\*.js"
            ]
},
Run Code Online (Sandbox Code Playgroud)

但是,我无法使用上述配置运行调试会话.步骤def.我在JavaScript中创建的文件.那么,如果看起来不错,只需要上面的脚本帮助吗?

Muk*_*wat 11

您可以尝试以下配置,以使您的调试在VS Code中工作.在outFiles给出您的功能文件路径.

{
    "name": "e2e",
    "type": "node",
    "request": "launch",
    "program": "${workspaceRoot}/node_modules/cucumber/bin/cucumber.js",
    "outFiles": [
        "${workspaceRoot}/features/*.feature"
    ]
}
Run Code Online (Sandbox Code Playgroud)

============================================
更新为黄瓜^ 5.0 1.2:

{
    "name": "NPM Cukes",
    "type": "node",
    "request": "launch",
    "console": "integratedTerminal",
    "program": "${workspaceRoot}/node_modules/cucumber/bin/cucumber-js",
    "args": [
        "path/to/features/**/*.feature",
        "-r",
        "path/to/steps/**/*",
        "--tags",
        "@your-tags"
    ]
}
Run Code Online (Sandbox Code Playgroud)

如果只想调试CURRENT功能,请将其添加到launch.json

{
    "type": "node",
    "request": "launch",
    "program": "${workspaceFolder}/node_modules/.bin/cucumber-js",
    "args": ["${relativeFile}"],
    "name": "Cukes current",
    "console": "integratedTerminal",
    "internalConsoleOptions": "neverOpen",
    "windows": {
        "program": "${workspaceFolder}/node_modules/cucumber/bin/cucumber"
    }
}   
Run Code Online (Sandbox Code Playgroud)

  • 该程序现已移动(我的版本是 7.3.2)到“@cucumber/cucumber”。 (3认同)

Ben*_*ade 5

调整 Mukesh Rawat 的答案并确保其他文件路径正确,让它对我有用:

启动.json

{
    "name": "DebugMode",
    "type": "node",
    "request": "launch",
    "program": "${workspaceRoot}/node_modules/cucumber/bin/cucumber-js",
    "args": [
        "${workspaceRoot}/features/*.feature",
        "--tags", "@debug"
    ]
}
Run Code Online (Sandbox Code Playgroud)

工作区.json

{
    "cucumberautocomplete.steps": [
        "features/steps/*.js"
    ],
    "cucumberautocomplete.syncfeatures": "features/*.feature",
    "cucumberautocomplete.strictGherkinCompletion": true,
    "settings": {},
    "folders": [
        {
            "path": "/Users/{me}/Documents/{project folder}/{project name}"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

包.json

"scripts": {
    "debug": "node --inspect=1337 --debug-brk --nolazy node_modules/cucumber/bin/cucumber-js --tags @debug --format json:./reports/report.json",
Run Code Online (Sandbox Code Playgroud)

CucumberTest.feature

@debug
Scenario: Validate I can get debug working
Run Code Online (Sandbox Code Playgroud)