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 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 -
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 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 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