如何防止django测试在文档字符串中运行示例?

时间:2015-09-08 16:52:47

标签: python django unit-testing testing docstring

在我的代码中,我有:

def fn1():
    """
    fn1 description

    Parameters
    ----------
    components_list : list
        List of IDs of the reference groups

    Return
    ------
    ret : str
        A string representing the aggregate expression (See example)

    Example
    -------
    >>> reference_groups = [1,2,3,4]
    >>> expression = suite.getComponentsExpression(reference_groups)
        (tier1 and tier2) or (my_group)
    """ 
    #some code here

当我运行:./manage.py test时,它会尝试运行该示例。有没有办法防止这种情况发生?例如也许CLI选项可以跳过docstrings

1 个答案:

答案 0 :(得分:1)

Django 1.6引入了一个新的测试运行器,它不运行doctests。因此,防止测试的一个答案是升级Django!

如果那是不可能的,那么正确的修复方法是子类DjangoTestSuiteRunner,禁用doc测试加载,并告诉Django使用[TEST_RUNNER]设置的新测试运行器。

或者,如果这太棘手了,那么快速破解就是改变你的文档字符串,使它们看起来不像doctests,例如。

>.> reference_groups = [1,2,3,4]