dan*_*mer 5 python pytest pytest-django
我刚刚将 pytest 添加到现有的 Django 项目中 - 所有单元测试都使用 Django 的unittest子类等。我们使用 SQLite 内存数据库进行测试。
manage.py test我们的测试套件大约需要 80 秒py.test采取相同的py.test -n1(或-n4,或类似的东西)大约需要 1280 秒。我期望有开销来支持该分发,但显然-n4,在大型测试套件上,它应该快大约 3-4 倍。
到目前为止,我已将问题追溯到数据库访问。测试运行得很快,直到第一次访问数据库,但在第一次.save()调用 Django 模型时,该测试将非常慢。
对工人进行一些分析后,看起来他们花了很多时间等待锁,但我不知道这是否是一个可靠的发现。
我想知道数据库上是否存在某种锁定,有人建议我内存中的 SQLite 数据库可能是一个内存映射文件,并且锁定可能发生在工作人员之间,但显然每次调用 open使用 SQLite 的内存数据库将返回一个完全独立的实例。
就目前情况而言,到目前为止,我可能已经在这方面花费了 5 个多小时,并与同事和其他人详细讨论了这一问题,但尚未发现问题。我无法在单独的代码库上重现。
预先感谢您的任何想法!
| 归档时间: |
|
| 查看次数: |
950 次 |
| 最近记录: |