在python模块integration_tests
中,我有一个脚本可以通过文件run_tests.py
:中的pytest运行我的测试
import pytest
if __name__ == "__main__":
pytest.main(['./integration_tests/']) # breakpoint here works, but no breakpoints in test methods
在我的docker-compose.yml
文件中,我附加了一个调试器,并通过设置入口点来运行测试:
entrypoint: ["/usr/src/app/cvenv/bin/python3.8", "-m", "ptvsd", "--host", "0.0.0.0", "--port", "5678", "--wait", "./integration_tests/run_tests.py"]
run_tests.py
文件中的断点有效。但在此之后没有断点被执行。
我如何才能真正调试测试,而不仅仅是在pytest调用之前?
我不知道我可以使用-m
模块开关两次。因此,现在我将-m pytest
开关添加到带有ptvsd调试选项的entrypoint命令中。现在,这个命令运行visualstudio调试器并调用测试。
我无法使用pytest.main
调用调试测试,因为它创建了一个单独的线程。