4

我正在尝试创建一组测试用例来涵盖我的 django 应用程序。我需要预定义的数据库数据来运行我的一些测试。所以我决定使用固定装置。

我所做的是: 1)创建夹具文件:oleg$ python manage.py dumpdata goserver > fixture1.json 2)将夹具放在应用程序所在的目录中 oleg$ cp fixture1.json goserver/ 3)在中写下纹理名称我的应用程序中的测试文件

   class GoserverTestCase(TestCase):
    fixtures = ['fixture1.json']

    def setUp(self):
        pass

    def testUserIsAdded(self):
        print "Users" , User.objects.all()
        #print ActiveList.objects.all()
        self.assertEquals(True, True)

4) 使用命令运行文本案例:oleg$ python manage.py test --verbosity=2 goserver

测试运行的输出是(部分):

正在为 xml 夹具“initial_data”尝试“/Users/oleg/jin/goclub/trunk/jin/../jin/register/fixtures”...在“/Users/oleg/jin/goclub/”中没有 xml 夹具“initial_data”主干/jin/../jin/register/fixtures'。尝试 '/Users/oleg/jin/goclub/trunk/jin/../jin/register/fixtures' 为 json 夹具 'initial_data' ... '/Users/oleg/jin/goclub/ 中没有 json 夹具 'initial_data'主干/jin/../jin/register/fixtures'。正在检查 '/Users/oleg/jin/goclub/trunk/jin/../jin/captcha/fixtures' 的固定装置...尝试 '/Users/oleg/jin/goclub/trunk/jin/../jin/captcha /fixtures' 用于 xml 夹具“initial_data”...“/Users/oleg/jin/goclub/trunk/jin/../jin/captcha/fixtures”中没有 xml 夹具“initial_data”。尝试'/Users/oleg/jin/goclub/trunk/jin/.. /jin/captcha/fixtures' 用于 json 夹具“initial_data”...“/Users/oleg/jin/goclub/trunk/jin/../jin/captcha/fixtures”中没有 json 夹具“initial_data”。正在检查 '/Users/oleg/jin/goclub/trunk/jin/../jin/goserver/fixtures' 的夹具...尝试 '/Users/oleg/jin/goclub/trunk/jin/../jin/goserver /fixtures 用于 xml 夹具“initial_data”...“/Users/oleg/jin/goclub/trunk/jin/../jin/goserver/fixtures”中没有 xml 夹具“initial_data”。尝试 '/Users/oleg/jin/goclub/trunk/jin/../jin/goserver/fixtures' 为 json 夹具 'initial_data'... 没有 json 夹具 'initial_data' 在 '/Users/oleg/jin/goclub/主干/jin/../jin/goserver/fixtures'。检查 '/' 的夹具... 尝试 '/' 的 xml 夹具 'initial_data'... “/”中没有 xml 夹具“initial_data”。为 json 夹具“initial_data”尝试“/”...“/”中没有 json 夹具“initial_data”。正在检查“U”中的固定装置...正在尝试“U”用于 xml 固定装置“initial_data”...“U”中没有 xml 固定装置“initial_data”。为 json 夹具“initial_data”尝试“U”...“U”中没有 json 夹具“initial_data”。正在检查 's' 的夹具... 正在尝试 's' 的 xml 夹具 'initial_data' ... 's' 中没有 xml 夹具 'initial_data'。为 json 夹具 'initial_data' 尝试 's'.. 正在检查“U”中的固定装置...正在尝试“U”用于 xml 固定装置“initial_data”...“U”中没有 xml 固定装置“initial_data”。为 json 夹具“initial_data”尝试“U”...“U”中没有 json 夹具“initial_data”。正在检查 's' 的夹具... 正在尝试 's' 的 xml 夹具 'initial_data' ... 's' 中没有 xml 夹具 'initial_data'。为 json 夹具 'initial_data' 尝试 's'.. 正在检查“U”中的固定装置...正在尝试“U”用于 xml 固定装置“initial_data”...“U”中没有 xml 固定装置“initial_data”。为 json 夹具“initial_data”尝试“U”...“U”中没有 json 夹具“initial_data”。正在检查 's' 的夹具... 正在尝试 's' 的 xml 夹具 'initial_data' ... 's' 中没有 xml 夹具 'initial_data'。为 json 夹具 'initial_data' 尝试 's'.. 对于 xml 夹具“initial_data”...“s”中没有 xml 夹具“initial_data”。为 json 夹具 'initial_data' 尝试 's'.. 对于 xml 夹具“initial_data”...“s”中没有 xml 夹具“initial_data”。为 json 夹具 'initial_data' 尝试 's'..

实际上问题是根本没有找到夹具,所以没有添加我想添加到测试数据库中的数据。你能建议我解决问题的方法吗

我尝试了一种新的方法来做到这一点。我只是做了一个完整数据库的转储并将其放入应用程序文件夹。

但我遇到了一些编码问题。

您能否检查错误响应:

文件“build/bdist.macosx-10.3-i386/egg/MySQLdb/cursors.py”,第 168 行,执行 if not self._defer_warnings: self._warning_check() 文件“build/bdist.macosx-10.3-i386/egg” /MySQLdb/cursors.py”,第 82 行,在 _warning_check 中警告(w[-1],self.Warning,3)文件“/opt/local/lib/python2.5/warnings.py”,第 62 行,在警告中globals)文件“/opt/local/lib/python2.5/warnings.py”,第 102 行,在 warn_explicit 引发消息警告:不正确的字符串值:'\xD0\x9D\xD0\xB0 \xD0...' 列第 1 行的“object_repr”

testUserIsAdded (jin.goserver.tests.GoserverTestCase) ... 用户 []

还有一个问题。当我禁用固定装置时,我仍然收到错误:

单元测试代码覆盖率结果

回溯(最近一次调用):文件“manage.py”,第 11 行,在 execute_manager(settings) 文件“/opt/local/lib/python2.5/site-packages/Django-1.0.2_final-py2.5. egg/django/core/management/ init .py”,第 340 行,在 execute_manager utility.execute() 文件“/opt/local/lib/python2.5/site-packages/Django-1.0.2_final-py2.5. egg/django/core/management/ init .py”,第 295 行,在执行 self.fetch_command(subcommand).run_from_argv(self.argv) 文件“/opt/local/lib/python2.5/site-packages/Django- 1.0.2_final-py2.5.egg/django/core/management/base.py",第 192 行,在 run_from_argv self.execute(*args, ** options.dict) 文件“/opt/local/lib/python2.5/site-packages/Django-1.0.2_final-py2.5.egg/django/core/management/base.py”,第 219 行,执行输出 = self。句柄(*args,**options)文件“/opt/local/lib/python2.5/site-packages/Django-1.0.2_final-py2.5.egg/django/core/management/commands/test.py” ,第 33 行,在处理失败 = test_runner(test_labels, verbosity=verbosity, interactive=interactive) 文件“/opt/local/lib/python2.5/site-packages/django_test_coverage-0.1-py2.5.egg/django-test -coverage/runner.py”,第 58 行,run_tests modules.extend(_package_modules(*pkg)) 文件“/opt/local/lib/python2.5/site-packages/django_test_coverage-0.1-py2.5.egg/ django-test-coverage/runner.py”,第 92 行,在 _package_modules modules.append(导入(impstr + '.' + name, {}, {}, [''])) 文件“/Users/oleg/jin/goclub/trunk/jin/goserver/admin.py”,第 11 行,在 admin.site .register(ActiveList, ActiveListAdmin) 文件“/opt/local/lib/python2.5/site-packages/Django-1.0.2_final-py2.5.egg/django/contrib/admin/sites.py”,第 64 行, in register raise AlreadyRegistered('The model %s is already registered' % model.name ) django.contrib.admin.sites.AlreadyRegistered: 模型 ActiveList 已经注册

4

1 回答 1

2

关于将夹具文件放在哪里的第一个问题:在每个应用程序中创建一个名为夹具的文件夹,并将夹具数据放在那里。

对于关于完整性错误的第二个问题,请查看有关内容类型和固定装置问题的讨论:

在 Django 中加载固定装置时出现内容类型问题

于 2009-09-06T18:01:27.010 回答