今天我与我的同事讨论了如何在django应用程序中管理灯具。我们找不到能满足每个人的任何解决方案,所以我在这里问这个问题。
假设我们内部有非常大的django项目,其中包含十几个应用程序,每个应用程序都有带有多个TestClasses的tests.py文件。有了这个,我应该如何管理所有这些应用程序的测试数据? 从我的角度来看,有两种不同的方式:
从我的角度来看,第二种方法似乎更清洁,但我想知道是否有人可以告诉我这些方法的具体利弊,或者可能建议其他方法?
答案 0 :(得分:2)
如果您考虑为测试定义测试数据的最简洁方法,我建议您阅读django-any application:
django-任何明确的旧式,大型和容易出错的替代品 隐含夹具文件。
django-any允许仅指定对test和填充重要的字段 以可接受的值随机休息。
它使测试变得干净且容易不受影响,无需读取夹具 文件。
from django_any import any_model, WithTestDataSeed class TestMyShop(TestCase): def test_order_updates_user_account(self): account = any_model(Account, amount=25, user__is_active=True) order = any_model(Order, user=account.user, amount=10) order.proceed() account = Account.objects.get(pk=account.pk) self.assertEquals(15, account.amount)
同样可用于表单的方法(django_any.any_form)
此解决方案有助于避免在执行测试时在数据库中保留额外数据。