10

我想与Hunterpy.test结合使用:

PYTHONHUNTER="module_startswith='foo'" py.test -s -k test_bar

不幸的是, Hunter 的输出(跟踪)不可见。

版本:

foo_cok_d@aptguettler:~$ py.test --version

This is pytest version 3.4.2, imported from /home/foo_cok_d/local/lib/python2.7/site-packages/pytest.pyc
setuptools registered plugins:
  pytest-xdist-1.22.2 at /home/foo_cok_d/local/lib/python2.7/site-packages/xdist/looponfail.py
  pytest-xdist-1.22.2 at /home/foo_cok_d/local/lib/python2.7/site-packages/xdist/plugin.py
  pytest-forked-0.2 at /home/foo_cok_d/local/lib/python2.7/site-packages/pytest_forked/__init__.pyc

在更简单(更小)的 virtualenv 中它可以工作(相同的 pytest 版本,但没有插件)。

可能是什么原因?

如何调试这个?

4

2 回答 2

8

我找到了解决方法。

如果我使用这两行,那么该-s选项(--capture=no 的快捷方式)py.test适用。

    def test_when_the_moon_is_in_the_seventh_house(self):
+        import hunter
+        hunter.trace(module_startswith='modlink')
        ...

我会看到比赛,我很高兴。

不修改源代码的解决方案会很好。

于 2019-02-28T14:48:38.547 回答
0
  1. 使用各自的 pytest 选项进行调试:

    pytest -v --tb=long

  2. 在 IDE 中使用断点在调试模式下运行程序。

示例:如何在 PyCharm 中进行调试

于 2019-03-06T12:39:52.483 回答