3
我在调试Django中的unittest代码时遇到了一些问题。
当我运行单元测试,我有输出调试单元测试
FAIL: test_basket (api.api_1_0.tests.basket_tests.BasketTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/dasm/apps/filmaster/reloaded/film20/api/api_1_0/tests/basket_tests.py", line 13, in test_basket
self.assertEquals(status, 200)
AssertionError: 400 != 200
,但是当我的同事运行相同的测试,他得到
2011-06-10 14:58:33,221 - WARNING:notification.models - No module named APNSWrapper - @<module>/96
/home/michuk/djcode/filmaster-reloaded/piston/handler.py:36: UserWarning: Handler already registered for model ChannelScreenings, you may experience inconsistent results.
"you may experience inconsistent results." % new_cls.model.__name__)
2011-06-10 14:58:33,844 - ERROR:film20.api.api_1_0.handlers - extra() got an unexpected keyword argument 'join' - @error_handler/93
Traceback (most recent call last):
File "/home/michuk/djcode/filmaster-reloaded/piston/resource.py", line 164, in __call__
result = meth(request, *args, **kwargs)
File "/home/michuk/djcode/filmaster-reloaded/film20/api/api_1_0/handlers.py", line 161, in wrapper
return view(self, request, request.username, *args, **kw)
File "/home/michuk/djcode/filmaster-reloaded/film20/api/api_1_0/handlers.py", line 1051, in read
return paginated_collection(request, BasketItem.objects.user_items(username, type).select_related('user', 'film'))
File "/home/michuk/djcode/filmaster-reloaded/film20/filmbasket/models.py", line 67, in user_items
join=['LEFT OUTER JOIN "core_recommendation" ON ("filmbasket_basketitem"."film_id" = "core_recommendation"."film_id" and "filmbasket_basketitem"."user_id" = "core_recommendation"."user_id")'],
TypeError: extra() got an unexpected keyword argument 'join'
Failure
Traceback (most recent call last):
File "/usr/local/lib/python2.6/dist-packages/django/utils/unittest/case.py", line 339, in run
testMethod()
File "/home/michuk/djcode/filmaster-reloaded/film20/api/api_1_0/tests/basket_tests.py", line 15, in test_basket
self.assertEquals(status, 200)
File "/usr/local/lib/python2.6/dist-packages/django/utils/unittest/case.py", line 520, in assertEqual
assertion_func(first, second, msg=msg)
File "/usr/local/lib/python2.6/dist-packages/django/utils/unittest/case.py", line 513, in _baseAssertEqual
raise self.failureException(msg)
AssertionError: 400 != 200
正如你所看到的,第二堆栈跟踪是更有效的那一个,我有。我可以更改我的设置(或安装一些东西)来扩展我的堆栈跟踪吗?
编辑:
操作系统:Ubuntu的11.04
的Python 2.7.1
PDB安装
我已经修复了第一个警告,所以我们的堆栈跟踪在这部分是不同的,但其余代码完全一样。 我们正在从Django 1.1(加入hack)迁移到Django 1.3,所以单元测试表明我出现了问题。第二个堆栈跟踪显示单元测试失败的确切位置:
File "/home/michuk/djcode/filmaster-reloaded/film20/filmbasket/models.py", line 67 TypeError: extra() got an unexpected keyword argument 'join'
当第一次只显示信息时,该测试失败。 我想有完整的回溯,因为搜索已损坏的元素会容易得多。 – 2011-06-10 16:08:11