gpt4 book ai didi

python - 从自定义管理命令运行 Django 单元测试

转载 作者:行者123 更新时间:2023-11-28 16:52:06 25 4
gpt4 key购买 nike

我曾经有一个独立的脚本和一些单元测试来测试我们数据库中的数据。我没有使用内置的 Django 测试工具,因为那样会创建一个空的测试数据库,这不是我想要的。

在那个脚本中,我创建了三个不同的类来扩展 unittest.TestCase,其中包含一些直接执行 SQL 语句的测试函数。

现在我希望能够直接访问 Django ORM。最简单的方法是通过自定义管理命令 (./manage.py datatests)。

在独立脚本中,我可以通过以下函数调用所有单元测试:

if __name__ == '__main__':
unittest.main()

它将发现当前文件中的所有测试并运行它们。

我如何从自定义 Django 管理命令中做同样的事情(运行一些测试套件)?

最佳答案

很抱歉在提问之前没有搜索足够长的答案,但我自己在另一个 Stackoverflow 答案中找到了解决这个问题的方法:

本质上,可以使用以下代码代替 unittest.main():

suite = unittest.TestLoader().loadTestsFromTestCase(TestCaseClass)
unittest.TextTestRunner(verbosity=2).run(suite)

这将加载指定 TestCaseClass 中的所有测试。如果您想加载当前模块中的所有测试,以这种方式创建套件将有所帮助:

suite = TestLoader().loadTestsFromName(__name__)

上面链接的 Stackoverflow 答案包含一个完整的示例。此外,unittest module docs基本示例部分描述了同样的事情。有关加载测试的其他选项,请参阅 docs 中的加载和运行测试 .

关于python - 从自定义管理命令运行 Django 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5831994/

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