To debug a pytest test using pdb, you can manually insert a breakpoint by adding import pdb; pdb.set_trace()
in your test:
import pytest
def divide(x, y):
return x / y
def test_zero_division():
import pdb
pdb.set_trace()
with pytest.raises(ZeroDivisionError):
divide(9, 0)
When running your tests, include the --pdb
flag with the pytest command to enable interactive debugging:
pytest test_exception.py --pdb
This will initiate the pdb prompt at the point where the breakpoint is set:
...
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> PDB set_trace (IO-capturing turned off) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> /Users/stanley/test_exception.py(12)test_zero_division()
-> with pytest.raises(ZeroDivisionError):
(Pdb)
Another way to set breakpoints is using the built-in breakpoint()
function, which simplifies the process of setting breakpoints:
def test_zero_division():
breakpoint()
with pytest.raises(ZeroDivisionError):
divide(9, 0)
This method is often preferred for its simplicity compared to import pdb; pdb.set_trace()
.
-
How to Solve the ModuleNotFoundError With Pytest?
To fix the ModuleNotFoundError in pytest, you can start by making your tests directory a Python package.This can be achieved by including an empty __init__.py file to the directory: └── tests/ ...
Questions -
How to Skip Directories With Pytest?
You can instruct Pytest to exclude specific directories from testing with the --ignore option. To exclude a single directory, execute: pytest --ignore=somedirectory To exclude multiple directories ...
Questions -
How to Use Pytest With Virtualenv?
To effectively use Pytest within a Python virtual environment, follow these instructions: First, create a virtual environment using Python. Assuming you are using the current latest version, (Pytho...
Questions -
How to Disable a Test Using Pytest?
If you need to disable a specific test when running your test suite with pytest, use the pytest skip decorator. Suppose you have the following tests in your test suite: import pytest def test_addit...
Questions
Make your mark
Join the writer's program
Are you a developer and love writing and sharing your knowledge with the world? Join our guest writing program and get paid for writing amazing technical guides. We'll get them to the right readers that will appreciate them.
Write for usBuild on top of Better Stack
Write a script, app or project on top of Better Stack and share it with the world. Make a public repository and share it with us at our email.
community@betterstack.comor submit a pull request and help us build better products for everyone.
See the full list of amazing projects on github