I can run in debug mode a unit test test_foo.py
by simplying pressing F5 in my IDE of choice:
# test_foo_module.py
import unittest
class TestFoo(unittest.TestCase):
def test_foo(self):
self.assertTrue(True)
if __name__ == '__main__':
unittest.main()
I'd have thought the pytest exact equivalent to be:
# test_foo_module.py
import pytest
def test_foo():
assert True
if __name__ == '__main__':
pytest.main()
But pytest.main()
scans the whole project directory. I want to execute only this module in debug mode.
pytest.main
optionally takes pytest CLI arguments (args
) as its first argument (if not specified, it defaults to sys.argv
). So, giving the current file name via args
should do it,
# test_foo_module.py
import pytest
def test_foo():
assert True
if __name__ == '__main__':
pytest.main([__file__])