当前位置: 代码迷 >> python >> 尽管超时,Pytest 仍然挂起
  详细解决方案

尽管超时,Pytest 仍然挂起

热度:38   发布时间:2023-06-13 15:12:32.0

我已经安装了并且正在尝试运行一个如下所示的测试:

@pytest.mark.timeout(30)    # Time out after 30 seconds
def test_main(timeline):
    if config['check_rules'] is True and save_only is False:  # If configured to do so:
        for instance in timeline.instances:                   # For each app (in each device) on our timeline...
            RulesGenerator(instance).gentest_rules()

据我了解,测试应该在 30 秒后超时。 然而,我观察到的是测试无限期挂起:

============================= test session starts ==============================
platform linux2 -- Python 2.7.12, pytest-3.0.5, py-1.4.32, pluggy-0.4.0
rootdir: /home/kurt/dev/clones6/ipercron-utils/tester, inifile: 
plugins: timeout-1.2.0, flask-0.10.0
collected 1 items 

tester.py 

简而言之, timeout功能似乎没有按预期工作。 这可能是什么原因?

通过使用-s选项打印输出,我相信我看到了问题所在:测试使用了一个fixture, timeline ,它需要很长时间才能生成。 timeout仅适用于测试本身,而不适用于它的夹具的生成。