gpt4 book ai didi

python - 如何让 django 的 unittest TestLoader 找到并运行我的 doctests?

转载 作者:行者123 更新时间:2023-11-28 19:59:12 25 4
gpt4 key购买 nike

在 Django 中,我的测试是 my_django_app/tests/ 中的一组 test_foo.py 文件,每个文件都包含一个 TestCase 子类,以及哪个 Django 会自动找到并运行。

我有一堆带有简单文档测试的实用程序模块,我想将它们包含在我的测试套件中。我尝试使用 doctest.DocTestSuite()my_django_app/tests/test_doctests.py 中定义测试套件,但 Django 的测试运行程序没有在该模块中找到新测试。

有没有一种方法可以创建一个调用我的 doctests 的 TestCase 类,或者以其他方式定义一个新的 tests/test_foo.py 模块来运行这些测试?

最佳答案

Django unittests 发现的自动功能会在您的 test_foo 模块中查找 load_tests 函数并运行它。所以你可以使用它来将你的 doctests 添加到测试套件中......

import doctest
import module_with_doctests

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

此外,由于 unittest 中的错误(?),您的 load_tests 函数将不会运行,除非您的 test_foo 模块还定义了一个TestCase-派生类,如下所示:

class DoNothingTest(TestCase):
"""Encourage Django unittests to run `load_tests()`."""
def test_example(self):
self.assertTrue(True)

关于python - 如何让 django 的 unittest TestLoader 找到并运行我的 doctests?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32959760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com