使用nose.main运行doctest插件

时间:2013-02-03 17:26:52

标签: nose python-nose

我想在Python中运行Nose builtin Doctest插件,特别是没有命令行选项或环境变量。

人们可以期待以下工作:

import nose, os
from nose.plugins.builtin import Doctest
# or from nose.plugins.doctests import Doctest

plugins = [Doctest(),]

nose.main(addplugins=plugins)
# or nose.main(plugins=plugins)

但是上面似乎没有按预期加载Doctest插件。

将不胜感激的想法和意见。

2 个答案:

答案 0 :(得分:2)

这是我做的:

import nose

argv = sys.argv[:]
argv.insert(1, "--with-doctest")

nose.main(argv=argv)

它不像我想的那么干净,但它有效。

答案 1 :(得分:1)

基于Brian的解决方案,还可以为了从交互式会话启动所有内容,执行以下操作:

import nose
nose.run(argv=['', '--with-doctest'])  # first empty item is ignored by nose.run

但是您的解决方案更适合直接从命令行启动的脚本,可能还有其他选项。