Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to debug a CucumberJS script using Visual Studio Code

I am building cucumberjs tests using Visual Studio Code. I am able to run the tests using npm from the command-line, and I am able to run them from within VS Code using a launch configuration.

However, I am unable to debug the test from within Visual Studio Code. This is on Windows 7, with VSCode 1.12.1

Basic File Structure:

.
+-- .vscode
|   +-- launch.json
+-- features
|   +-- step_definitions
|   |   +-- sampleSteps.js
|   +-- support
|   |   +-- customWorld.js
|   +-- sampletest.feature
+-- node_modules
|   +-- .bin
|   |   +-- cucumberjs
+-- package.json
+-- README.md

Inside package.json, I have the following:

  "scripts": {
    "test": "./node_modules/.bin/cucumberjs"
  },

From the command-line, I can run npm test or npm run-script test with success. I have a launch.json configuration as follows:

{
    // Use IntelliSense to learn about possible Node.js debug attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Launch via NPM",
            "runtimeExecutable": "npm",
            "windows": {
                "runtimeExecutable": "npm.cmd"
            },
            "runtimeArgs": [
                "run-script",
                "test"
            ]
        }
    ]
}

When I run the Debugger from within VS Code, it just runs the test, giving me the results, but doesn't honor the breakpoints.

I would like to be able to step through my code, and it seems like launch.json is the tool to do that. I have tried calling cucumber directly from launch.json, but in that case it doesn't seem to find all the right files (including cucumberjs).

like image 713
erich z Avatar asked May 09 '17 19:05

erich z


People also ask

How do I debug a script in Vscode?

To run or debug a simple app in VS Code, select Run and Debug on the Debug start view or press F5 and VS Code will try to run your currently active file. However, for most debugging scenarios, creating a launch configuration file is beneficial because it allows you to configure and save debugging setup details.


1 Answers

I was able to get it working with this launch.json:

{
    // Use IntelliSense to learn about possible Node.js debug attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Via NPM",
            "runtimeExecutable": "npm",
            "windows": {
                "runtimeExecutable": "npm.cmd"
            },
            "env":{
               "NODE_PATH": "test/"
            },
            "runtimeArgs": [
                "run-script",
                "debug"
            ],
            "port": 5858
        }
    ]
}

Then in package.json:

"scripts": {
    "debug": "node --debug-brk=5858 ./node_modules/cucumber/bin/cucumber.js --profile TEST -t '@my_tag'"
}

Hope this helps! (please note this was done on MacOS)

like image 160
samspot Avatar answered Oct 23 '22 02:10

samspot