How to Debug your Selenium Automation Projects in VS Code using breakpoints.

PrimeQA Solutions
3 min readJun 26, 2024

--

Debugging automation projects line by line in Visual Studio Code (VS Code) can significantly improve the efficiency and reliability of your testing processes. In this guide, we will explore how to set up and use breakpoints for debugging Pytest test cases in VS Code using a properly configured "launch.json” file.

Key Points:

1. Setting up launch.json Configuration

To launch Pytest test cases in debug mode, you need to configure the launch.json file correctly. The launch.json file is placed in a . vscode folder at the root of the folder that you opened. Here’s a step-by-step guide:

{
"version": "0.2.0",
"configurations": [
{
"name": "Debug Pytest Test - test_login",
"type": "debugpy",
"request": "launch",
"module": "pytest",
"args": [
"${workspaceFolder}/main_test/Test_case.py",
"-k", "test_login", "-s"
],
"console": "integratedTerminal",
"env": {
"PYTHONPATH": "${workspaceFolder}"
}
}
]
}

Explanation:

  • name: A descriptive name for your debug configuration.
  • type: Specifies the debugger type (use debugpy for the new Python Debugger extension).
  • request: Type of request (launch starts a new debugging session).
  • module: Specifies the module to run (e.g., Pytest for running tests with Pytest).
  • args: Arguments passed to the module (Pytest in this case), including the path to your test script and the specific test case name to run (-k).
  • console: Specifies where the debug console output should be displayed (use integratedTerminal to open an integrated terminal in VS Code).
  • env: Environment variables (set PYTHONPATH to ${workspaceFolder} to ensure Python can find your project modules).

2. Running Specific Test Cases

To run individual Pytest test cases, use the -k (keyword) argument in your launch.json configuration. This allows you to specify and run specific test cases.

"args": [
"${workspaceFolder}/main_test/Test_case.py",
"-k", "test_login", "-s"
]

In this example, the test case named test_login within the Test_case.py script will be executed.

3. Using Breakpoints and Stepping Through Code

Breakpoints allow you to pause execution at specific lines of code. Here’s how to set and use them:

  • Setting Breakpoints: Open your test script (Test_case.py) in VS Code and click in the gutter next to the line numbers where you want to pause execution.
  • Stepping Through Code: Use the following keyboard shortcuts:
  • F10: Step over the current line.
  • F11: Step into the function call.
  • Shift+F11: Step out of the current function.

4. Inspecting Variables and Debug Console

During debugging sessions, inspecting variables and using the Debug Console are crucial for understanding the state of your application.

  • Inspecting Variables: Hover over variables to see their current values or use the Variables pane in the Debug view.
  • Debug Console: Use the Debug Console to evaluate expressions and interact with the running code. This is especially useful for troubleshooting and understanding how your code behaves at runtime.

Use Case

This setup is ideal for:

  • Developers working on Pytest-based automation projects.
  • QA engineers debugging Pytest tests to improve test reliability.

Notes

  • Adjust the args in each configuration to match the test case names exactly as defined in your test scripts.
  • Ensure your Python environment is correctly set up with Pytest and other necessary dependencies for running and debugging tests.

By following these steps and using the provided configuration, you can selectively debug specific test cases from your Pytest test suite in Visual Studio Code, providing focused debugging capabilities for troubleshooting and testing. Adjust paths and configurations as needed based on your specific project structure and requirements.

Same way we can configure the “launch.json” file for Selenium Java Automation projects as well in VS Code.

For sample POC, contact:- https://primeqasolutions.com/contact-us/

--

--

PrimeQA Solutions
PrimeQA Solutions

Written by PrimeQA Solutions

PrimeQA is one of the global leaders in Quality Assurance and Testing. Reliability, efficiency, and expertise are the core principles of our QA services.

No responses yet