在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-doctest
或python -m doctest hgvs/variantmapper.py
调用时,由于hdp未定义而导致错误,因为这些调用不使用extraglobs。
如何编写使用初始化状态且在doctest和nose框架下都有效的doctests? (http://nose.readthedocs.org/en/latest/doc_tests/test_doctest_fixtures/doctest_fixtures.html对我没有帮助。)