指定在doctest sui中运行testsetup块的顺序

2024-05-28 20:11:28 发布

您现在位置:Python中文网/ 问答频道 /正文

在一个包含许多Python doctest的重组文本文件中,我有一个testsetup块要在每个doctest之前运行,还有一些testsetup块只想在一些doctest之前运行。我知道如何用组来实现这一点,但是有没有一种方法可以指定testsetup块的运行顺序?在

这是一份文件,食客公司名称:

.. testsetup:: *

  import sys
  sys.stderr.write('testsetup *' + chr(10))

.. testsetup:: my-group

  import sys
  sys.stderr.write('testsetup my-group' + chr(10))

.. doctest:: my-group

  >>> print 'test 1'
  test 1

当它运行时,我看到:

^{pr2}$

是否有某种方法可以强制执行相反的顺序,因此最广泛适用的设置是在组特定设置之前运行?在


Tags: 文件方法testimport顺序mystderrsys
1条回答
网友
1楼 · 发布于 2024-05-28 20:11:28

看看latest sphinx source code(参见DocTestBuilder.test_doc),答案是不,这是不可能的。目前,所有的测试块都是按顺序收集的,要么分配给一个组,要么分配给一个特殊的add_to_all_groups。在此之后,add_to_all_groups中的代码被附加到每个组的代码列表中,结果是它总是在特定于组的代码之后运行。看起来编写一个补丁来改变这种行为是相当容易的,或者更好的方法是提供它作为一个选项。在

相关问题 更多 >

    热门问题