python – 使用django_nose和django-dynamic-fixture优化样本django模型的设置和拆卸
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 使用django_nose和django-dynamic-fixture优化样本django模型的设置和拆卸,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1696字,纯文字阅读大概需要3分钟。
内容图文
![python – 使用django_nose和django-dynamic-fixture优化样本django模型的设置和拆卸](/upload/InfoBanner/zyjiaocheng/721/380a98de58b848f4bb4009a40b94a5af.jpg)
鉴于我的模型如下:
class Author(models.Model):
name = models.CharField(max_length=100)
description = models.TextField()
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.ManyToManyField(Author)
我正在使用django-dynamic-fixture轻松生成模型夹具进行测试.我也在使用django_nose,这可以帮助我很好地运行和管理测试.
在settings.py文件中设置test_runner并将所有可安装程序放在适当的位置.
要生成如上所述的模型,测试应该是
from django_dynamic_fixture import G
class BookModelTest(TestCase):
def test_book_creation(self):
author1 = G(Author)
author2 = G(Author)
book = G(Book, author=[author1])
book_obj = Book.objects.all()
self.assertEquals(book_obj.count(), 1)
self.assertEquals(list(book_obj[0].author), [author1])
self.assertEquals(book_obj[0].title, book.title)
self.assertNotEquals(list(book_obj[0].author), [author1])
def another_test(self):
"Here as well i need the same, author1, author2 and book
如果我写的话
class AuthorModelTest(TestCase):
def test_some_stuff()
我需要一些固定值.
以下是我的查询:
如何让我的夹具生成DRY.意思是不是在每个函数中都从G创建书籍和作者装置?
django_nose有助于优化setUp和tearDown方法并提高速度,我如何在这里使用它们?只是把* django_nose.FastFixtureTestCase *放在一起会照顾setUp tearDown的痛苦吗?或者我需要使用TransactionTestCase吗?如何优化上述夹具并进行测试?
解决方法:
TransactionTestCase可以帮助您节省每次测试保存整个数据库刷新的时间,它希望您从未使用的数据库开始,您可以使用任何夹具生成器自由生成它.但是,TransactionTestCase会使数据库混乱,django-nose可帮助您优化数据库.但是django-nose有另一个测试运行器FastFixtureTestCase可以帮助你优化setUp和tearDown.
如前所述,您可以使用任何夹具生成,如果您希望django-nose的优点使用FastFixtureTestCase,它将帮助您优化IO时间.
内容总结
以上是互联网集市为您收集整理的python – 使用django_nose和django-dynamic-fixture优化样本django模型的设置和拆卸全部内容,希望文章能够帮你解决python – 使用django_nose和django-dynamic-fixture优化样本django模型的设置和拆卸所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。