有没有办法在通过nosetests调用doctests时获得类似于extraglobs的行为?

时间:2014-06-13 19:23:44

标签: python testing nose doctest

在Python模块的底部,我有:

if __name__ == "__main__":
    import doctest
    import hgvs.dataproviders.uta
    doctest.testmod(extraglobs={'hdp': hgvs.dataproviders.uta.connect()})

extraglobs位的作用是创建数据库连接的实例并将其作为变量hdp公开给测试,如下所示:

class EasyVariantMapper(VariantMapper):
    """Provides simplified variant mapping for a single assembly and
    ...
    >>> evm = EasyVariantMapper(hdp)
    >>> evm._alt_ac_for_tx_ac('NM_000552.3')
    ['NC_000012.11']

    """

当我使用python hgvs/variantmapper.py调用doctests时,这只是花花公子,因为使用extraglobs初始化调用了测试。

但是,当我使用nosetests --with-doctestpython -m doctest hgvs/variantmapper.py调用时,由于hdp未定义而导致错误,因为这些调用不使用extraglobs。

如何编写使用初始化状态且在doctest和nose框架下都有效的doctests? (http://nose.readthedocs.org/en/latest/doc_tests/test_doctest_fixtures/doctest_fixtures.html对我没有帮助。)

0 个答案:

没有答案