0

我正在考虑将我们的 Django 项目的测试切换为使用 Pytest 和 pytest-django。我遇到的问题是我无法在中间完全停止测试运​​行。

默认的 Django 测试运行器对此有很好的支持

如果在测试运行时按 Ctrl-C,测试运行器将等待当前运行的测试完成,然后正常退出。在正常退出期间,测试运行器将输出任何测试失败的详细信息,报告运行了多少测试以及遇到了多少错误和失败,并照常销毁任何测试数据库。因此,如果您忘记传递 --failfast 选项,请注意某些测试意外失败并希望在不等待完整测试运行完成的情况下获取有关失败的详细信息,则按 Ctrl-C 可能非常有用。

如果您不想等待当前正在运行的测试完成,您可以再次按下 Ctrl-C,测试运行将立即停止,但不会正常停止。不会报告中断前运行的测试的详细信息,并且运行创建的任何测试数据库都不会被破坏。

Pytest 或 pytest-django 对此有什么支持吗?我已经进行了一些挖掘,看起来你必须调用unittest.installHandler(),然后以某种方式告诉 Pytest 停止运行。

使用 Pytest,按Ctrl+C只会立即停止测试,而不会进行任何拆解。调用installHandler()意味着它不会停止运行。

4

0 回答 0