修改 运行 nose Doctest 插件

Modify and run nose Doctest Plugin

我一直在成功地使用 nose.run(argv=['--with-doctest'], addplugins=[...]),但现在我需要子类化 nose.plugins.doctests.Doctest,以便我可以修改它的 loadTestsFromModule 方法。我还有其他插件(通过子类化 nose.plugins.Plugin)可以正常工作,但我没有成功 运行 doctests。

from nose.plugins.doctests import Doctest

class TestDocs(Doctest):
    def loadTestsFromModule(self, module):
        # add something here
        super(testDocs, self).__init__(module)

我尝试了以下方法:

nose.run(addplugins=[TestDocs()])
nose.run(plugins=[TestDocs()])
nose.run(argv=['--with-testdocs'])
nose.run(argv=['--with-testdocs'], addplugins=[TestDocs()])

我也尝试了另一个名字,以防它包含 'test' 是一个问题。我尝试直接使用 DocTest,但不使用 --with-doctest.

就无法激活 doctests
nose.run(addplugins=[Doctest()])
nose.run(plugins=[Doctest()])

如何使用插件激活 doctests?

此组合允许 Doctest 的自定义子类使用 nose.run

nose.run(argv=['--with-testdocs'], plugins=[TestDocs()])

使用 argv=['--plugins'] 很有帮助,因为它强调了 plugins=addplugins= 之间的区别,因为我已经在为其他插件使用 addplugins。:

>>> nose.run(argv=['--plugins'], plugins=[TestDocs()], 
             addplugins=[OtherPlugin(), AnotherPlugin()])
Plugin OtherPlugin
Plugin testdocs
Plugin AnotherPlugin