Django doctests 不运行

4 投票
2 回答
615 浏览
提问于 2025-04-16 09:21

这和这个问题有点相似。不过在我的情况下,我的模型里的doctest都没有运行。

我使用的是Django 1.3 beta 1

# settings.py
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'

INSTALLED_APPS = (
    ##...a bunch of django apps
    'django_nose',
    'south',
    'my_project.my_app',
)

这是我一个模型里的doctest:

class ItemType(models.Model):
    '''
    >>> temType.objects.all().count() == 0
    True
    '''
    name = models.CharField(max_length=32)

    def __unicode__(self):
        return self.name

这个测试应该会失败,因为有initial_data这个数据文件,但我还是试了一下:

class ItemType(models.Model):
    '''
    >>> ItemType.objects.all().count() == -1
    True
    '''
    name = models.CharField(max_length=32)

    def __unicode__(self):
        return self.name

我尝试运行了以下内容:

./manage.py test --with-doctest my_app

使用Django的测试运行器,我只需要输入以下内容就能处理我的doctest:

./manage.py test my_app

有什么建议吗?

2 个回答

0

可能现在说这个有点晚了,不过你能试着把测试的详细程度调高一点吗,使用 --verbosity 参数?

如果你看到有消息说某些文件因为是可执行文件而被跳过了,可以试着在你的 NOSE_ARGS 中加上 --exe,或者用 chmod -x the_file.py 来去掉这个文件的可执行权限。

3

在你的设置里,只需要加上这个设置:

NOSE_ARGS = ['--with-doctest', other_nose_args]

想了解更多选项,可以查看 django-nose 的文档

撰写回答