Запустите плагин doctest с nose.main

Я хотел бы запустить встроенный нос Doctest плагин из Python, особенно без параметров командной строки или переменных среды.

Можно ожидать, что сработает следующее:

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 ответа

Решение

Вот что я сделал:

import nose

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

nose.main(argv=argv)

Это не так чисто, как хотелось бы, но это работает.

Основываясь на решении Брайана, можно также, чтобы запустить все из интерактивного сеанса, сделать следующее:

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

Но ваше решение лучше для сценария, который запускается непосредственно из командной строки, возможно, с дополнительными параметрами.

Другие вопросы по тегам