我在使用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
我觉得我在这里缺少一些基本设置。如果需要任何其他信息,请与我们联系。感谢任何帮助,谢谢!
答案 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 models
和tests.addTests(doctest.DocTestSuite(models))
]
答案 2 :(得分:1)
nosetests --verbosity 1 season --with-doctest
Usage: manage.py test [options] [appname ...]
也许你只需要移动season
然后结束。