Я пытался отладить сценарии Cucumber в коде Visual Studio и внес следующие изменения в 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"
            ]
},

Однако я не могу запустить сеанс отладки, используя вышеуказанную конфигурацию. Шаг определения файлы, которые я создал в JavaScript. Итак, просто нужна помощь по сценарию выше, если это выглядит нормально?

9
user7890278 19 Окт 2017 в 19:08

3 ответа

Лучший ответ

Вы можете попробовать следующую конфигурацию, чтобы ваша отладка работала в VS Code. В outFiles укажите путь к файлу объекта.

{
    "name": "e2e",
    "type": "node",
    "request": "launch",
    "program": "${workspaceRoot}/node_modules/cucumber/bin/cucumber.js",
    "outFiles": [
        "${workspaceRoot}/features/*.feature"
    ]
}

< Сильный > ============================================
ОБНОВЛЕНИЕ КАК Огурец ^ 5.0.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"
    ]
}

Если вы хотите отлаживать только 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"
    }
}   
13
vilkg 30 Окт 2018 в 14:58

При работе с Ruby его можно использовать таким образом для запуска определенных файлов объектов:

{
    "name": "Cucumber",
    "type": "Ruby",
    "request": "launch",
    "cwd": "${workspaceRoot}",
    "program": "${workspaceRoot}/bin/cucumber",
    "args": [
        "--tags", "@Mytags",
        ]
}
1
Stephen Rauch 15 Мар 2018 в 00:22

Настроив ответ от Mukesh Rawat, а также убедившись, что дополнительные пути к файлам были правильными, я получил его:

Launch.json

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

Workspace.json

{
    "cucumberautocomplete.steps": [
        "features/steps/*.js"
    ],
    "cucumberautocomplete.syncfeatures": "features/*.feature",
    "cucumberautocomplete.strictGherkinCompletion": true,
    "settings": {},
    "folders": [
        {
            "path": "/Users/{me}/Documents/{project folder}/{project name}"
        }
    ]
}

Package.json

"scripts": {
    "debug": "node --inspect=1337 --debug-brk --nolazy node_modules/cucumber/bin/cucumber-js --tags @debug --format json:./reports/report.json",

CucumberTest.feature

@debug
Scenario: Validate I can get debug working
1
Benny Meade 3 Фев 2019 в 16:24