在Django中与单元测试分开运行集成测试

时间:2019-10-05 18:08:30

标签: python django unit-testing

在Django中创建测试的约定是将测试放置在名为tests_*.py的模块中,然后以python manage.py test的身份运行。

这将在名为test的所有模块中运行所有测试定义的测试。

我遇到的挑战是集成测试可能需要大量的资源设置,例如与外部服务的连接。我想象在集成测试中模拟那些服务会导致集成测试失去它们的含义。

因此,我询问仅运行单元测试以及仅在单元测试正常运行时才运行集成测试的最佳实践。

我能想象的唯一方法是将integration tests放在以其他模式命名的文件中,例如integration_*.py,然后在运行django documentation指定的集成测试时使用pattern参数

喜欢python manage.py test --pattern="integration_*"

这样,在调用python manage.py test时,集成测试将被忽略。

有人有建议吗?

1 个答案:

答案 0 :(得分:0)

您可以使用Tagging test处理此问题。然后尝试用名称标记测试:

./manage.py test --tag=integration