python - 对于某些测试用例,Django 不会重新加载夹具
问题描述
对于每个测试类,我都.json
使用数据生成了基本夹具。这是一种非常清晰和快速的方法,因为我不需要花时间来生成数据。我可以直接在测试中使用工厂生成的任何其他数据。
class ProfileViewTests(MyProjectTestCase):
fixtures = [os.path.join('compiled', 'test_companies_and_users.json')]
def test1(self):
pass
def test2(self):
pass
加载一些夹具的问题需要长达 15 秒,因为它们创建了一个巨大的测试数据环境。
现在,我有 70% 的时间浪费在每个测试用例之后加载夹具。好处是因为当我们更新对象时,我们不需要关心刷新这些数据,但坏处是每次测试都会增加时间。
我可以将一些数据移至setUpTestData
,但重新访问所有这些数据以进行所有这些测试几乎是不可能的。
我的问题是有一个装饰器说一些测试用例不会重新加载固定装置,如果它们不修改数据。
@do_not_flush_data_from_database_for_next_test_case_from_this_class
def get_users_test(self):
pass
因为我的测试只针对get
用户,我不想浪费 15 秒来重新加载我的夹具文件以进行下一次测试。
或者我需要深入研究:“为什么我的灯具加载这么慢?”
解决方案
推荐阅读
- makefile - 如何检测包含链中的第一个 Makefile?
- java - @Scheduled 方法未在特定类中运行
- typescript - 如何扩展另一个模块声明文件?
- database-migration - migrating from [Trac 1.0] to [Trac 1.4] TracError: OperationalError: no such column: description
- ios - 如何使用 CGAffineTransform 使两个视图具有相同的宽度和高度
- python - pymc3中的转换率
- javascript - 我可以在一个函数中堆叠不同的 javascript 方法吗?
- python - 3D 曲面图:如何反转轴
- android - Android Studio“底部导航活动”模板在顶部留下空白区域
- javascript - 在 Vue 中观察异步外部 DOM 变化