Skip to content
Permalink
main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time

Debugging tests with Visual Studio Code

Translations: Fran莽ais

You can debug your tests using Visual Studio Code.

Debugging with the debug terminal

You can use VS Code's 鈥淛avaScript Debug Terminal鈥 to automatically debug AVA run on the command-line.

  1. From the Command Palette (F1 or command + shift + p / control + shift + p), run Debug: JavaScript Debug Terminal
  2. Run npx ava in the terminal

Creating a launch configuration

Alternatively you can create a launch configuration, which makes it easier to debug individual test files.

  1. Open a workspace for your project.
  2. In the sidebar click the Debug handle.
  3. Create a launch.json file.
  4. Select the Node.js environment.
  5. Add following to the configurations array and save changes:
{
  "type": "node",
  "request": "launch",
  "name": "Debug AVA test file",
  "program": "${workspaceFolder}/node_modules/ava/entrypoints/cli.mjs",
  "args": [
    "${file}"
  ],
  "outputCapture": "std",
  "console": "integratedTerminal", // optional
  "skipFiles": [
    "<node_internals>/**/*.js"
  ]
}

Using the debugger

Open the file(s) you want to debug. You can set breakpoints or use the debugger keyword.

Now, with a test file open, from the Debug menu run the Debug AVA test file configuration.

Debugging precompiled tests

If you compile your test files into a different directory, and run the tests from that directory, the above configuration won't work.

Assuming the names of your test files are unique you could try the following configuration instead. This assumes the compile output is written to the build directory. Adjust as appropriate:

{
  "type": "node",
  "request": "launch",
  "name": "Debug AVA test file",
  "program": "${workspaceFolder}/node_modules/ava/entrypoints/cli.mjs",
  "args": [
    "build/**/${fileBasenameNoExtension}.*"
  ],
  "outputCapture": "std",
  "console": "integratedTerminal", // optional
  "skipFiles": [
    "<node_internals>/**/*.js"
  ]
}

Serial debugging

By default AVA runs tests concurrently. This may complicate debugging. Instead make sure AVA runs only one test at a time.

Note that, if your tests aren't properly isolated, certain test failures may not appear when running the tests serially.

If you use the debug terminal make sure to invoke AVA with npx ava --serial.

Or, if you're using a launch configuration, add the --serial argument:

{
  "type": "node",
  "request": "launch",
  "name": "Debug AVA test file",
  "program": "${workspaceFolder}/node_modules/ava/entrypoints/cli.mjs",
  "args": [
    "--serial",
    "${file}"
  ],
  "outputCapture": "std",
  "console": "integratedTerminal", // optional
  "skipFiles": [
    "<node_internals>/**/*.js"
  ]
}