django doctests没有被运行

时间:2011-10-15 15:05:10

标签: python django testing nose doctest

我在使用django-nose运行django doctests时遇到问题。添加到/ tests目录的单元测试运行正常,但doctests不是。

我正试图在我的“季节”模块上运行doctests:

python manage.py test season

并获得此输出:

nosetests --verbosity 1 season --with-doctest
Creating test database for alias 'default'...

----------------------------------------------------------------------
Ran 0 tests in 0.001s

OK
Destroying test database for alias 'default'...

我只是尝试一种基本的doctest来尝试让它发挥作用,例如:

    """
    >>> 1+1 == 2
    True
    """

这是在我的models.py中。我已经尝试过其他doctests实际测试代码,但仍然没有看到任何测试运行。当我使用--verbosity 3运行时,我看到一行可能是问题:

nose.selector: INFO: <models.py path> is executable; skipped

我找不到更多关于这意味着什么的信息。

来自settings.py的相关摘录:

INSTALLED_APPS = (
    'south',
    'django_nose',
    'season',
)

# Django-nose configuration
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
NOSE_ARGS = ['--with-doctest']

django_nose是在django-nose文档中指定的INSTALLED_APPS之后的南部。我正在使用这里建议的--with-doctest参数:Nose not running Django doctests,并将我的django-nose更新为最新的,如下所示:Why isn't django-nose running the doctests in my models?

这些是我正在使用的版本:
django 1.3
python 2.7.1
django-nose 0.1.3
鼻子1.1.2

我觉得我在这里缺少一些基本设置。如果需要任何其他信息,请与我们联系。感谢任何帮助,谢谢!

3 个答案:

答案 0 :(得分:2)

详细消息告诉您您的models.py文件被忽略,因为它是可执行文件。这意味着您需要这样做:

chmod -x models.py

除非您有特定原因要将该文件设置为可执行文件,否则在--exe添加NOSE_ARGS就足够了。

答案 1 :(得分:2)

我意识到OP指定了1.3,但由于这个答案出现在搜索django doctests中,所以不会运行&#39;这是Django doctests in views.py中一个答案中我对1.6的答案。在这个版本的Django doctests中自动包含 not ,所以在$ APP / tests.py中你需要:

import doctest
def load_tests(loader, tests, ignore):
    tests.addTests(doctest.DocTestSuite())
    return tests

[这只能在tests.py本身找到doctests;让它在其他模块上运行doctests,比如myapp / models.py,你需要from myapp import modelstests.addTests(doctest.DocTestSuite(models))]

答案 2 :(得分:1)

nosetests --verbosity 1 season --with-doctest

Usage: manage.py test [options] [appname ...]

也许你只需要移动season然后结束。