我关闭了Django主干,注意到主干中Django模块的单元测试总是失败。 Django主干应该通过它所有的单元测试吗?如果Django的中继单元测试失败会怎么办?
下面是一些例子错误:
====================================================================== ERROR: test_password_change_fails_with_invalid_old_password (django.contrib.auth.tests.views.ChangePasswordTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/michael/django/trunk/django/contrib/auth/tests/views.py", line 156, in test_password_change_fails_with_invalid_old_password 'new_password2': 'password1', File "/Users/michael/django/trunk/django/test/client.py", line 318, in post response = self.request(**r) File "/Users/michael/django/trunk/django/core/handlers/base.py", line 87, in get_response response = middleware_method(request, callback, callback_args, callback_kwargs) File "/Users/michael/Documents/workspace/drchrono/drchrono_middleware/drchrono.py", line 31, in process_view setattr(request, 'currentDoctor', request.user.get_profile().doctor) #Default is to have currentDoctor be default for logged in user. File "/Users/michael/django/trunk/django/contrib/auth/models.py", line 285, in get_profile self._profile_cache = model._default_manager.get(user__id__exact=self.id) File "/Users/michael/django/trunk/django/db/models/manager.py", line 119, in get return self.get_query_set().get(*args, **kwargs) File "/Users/michael/django/trunk/django/db/models/query.py", line 298, in get % self.model._meta.object_name) DoesNotExist: UserProfile matching query does not exist.
我才意识到,很多错误的提缺少用户配置,并且我有我创建通过新用户时创建一个自定义用户配置对象Web注册过程(但是在管理员中实例化一个新的User对象时并未创建,或者我将通过代码假设)。所以,也许这是我的应用程序的错误,因为未为通过GUI创建的用户创建UserProfiles。我如何为每个创建的用户对象创建一个UserProfile?你是否用monkeypatch User类的new()方法?
我认为这可能是由于我的开发设置。我使用的是OSX和MySQL,大多数失败似乎是重命名表等数据库相关的。 – MikeN 2009-10-28 15:47:46
OSX和MySQL都完全支持,所以还是值得一问。我确信Django团队会更喜欢你可以自信地运行测试。 – 2009-10-28 17:37:43