我正在一个最近切换到py.test unittest框架的项目中工作.我习惯于从Eclipse调用我的测试,以便我可以使用调试器(例如,放置断点来分析测试失败的发展方式).现在这已经不可能了,因为运行测试的唯一方法是通过命令行blackbox.
有没有办法在Python中使用py.test,以便不会强行退出IDE?当然,测试不应该在单独的过程中运行.
nik*_*kow 21
我想我现在可以回答我自己的问题了,这很简单:
import py
py.test.cmdline.main(args)
Run Code Online (Sandbox Code Playgroud)
然后我可以运行此模块,或者使用集成调试器启动它.
args 是命令行参数的列表,所以例如,为了只运行特定的测试,我可以使用类似的东西:
args_str = "-k test_myfavorite"
py.test.cmdline.main(args_str.split(" "))
Run Code Online (Sandbox Code Playgroud)
现在看来(py.test版本2.0+)有人也可以这样做:
import pytest
pytest.main('-x {0}'.format(argument))
# Or
# pytest.main(['-x', 'argument'])
Run Code Online (Sandbox Code Playgroud)
参考:https://pytest.org/latest/usage.html#calling-pytest-from-python-code
对我来说是这样的:
pytest.main(["-x", "path to test file", "args"])
Run Code Online (Sandbox Code Playgroud)
例如:
import pytest
pytest.main(["-x", "/api/test", "-vv"])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12353 次 |
| 最近记录: |