我将Django 1.7项目更新为Django 1.8,现在运行测试时出现错误(这些测试是django.test.TestCase的子类).

Traceback (most recent call last):
  File "env\lib\site-packages\django\test\testcases.py", line 962, in tearDownClass
cls._rollback_atomics(cls.cls_atomics)
  AttributeError: type object 'SomeTests' has no attribute 'cls_atomics'

如果我调试通过测试,我可以一步一步地通过所有行而不会出现问题,但在最后一行之后会抛出异常.

这是一个示例测试:

import django
import unittest
from django.test import TestCase
import logging
import sys
from builtins import classmethod, isinstance

class ATestTests(TestCase):

    @classmethod
    def setUpClass(cls):
        django.setup()
        logging.basicConfig(stream=sys.stderr, level=logging.DEBUG)


    def setUp(self):
        self._app = Application(name="a")


    def testtest(self):

        self.assertIsNotNone(self._app)

我的环境:

astroid==1.3.4
colorama==0.3.3
defusedxml==0.4.1
Django==1.8
django-extensions==1.5.2
django-filter==0.9.2
djangorestframework==3.0.5
djangorestframework-xml==1.0.1
eight==0.3.0
future==0.11.4
logilab-common==0.63.2
Markdown==2.5.2
pylint==1.4.1
python-dateutil==2.4.1
python-mimeparse==0.1.4
six==1.9.0
xmltodict==0.9.2

我该怎么解决这个问题?

推荐答案

我相信原因是你的setUpClass(cls)类方法没有调用super.正因为如此,django.tests.TestCase.setUpClass没有被称为

cls.cls_atomics = cls._enter_atomics()

未调用,自然导致cls_atomics未定义.

你应该在setUpClass的基础上再加super(ATestTests, cls).setUpClass().

Python-3.x相关问答推荐

我没有';无法理解此TemplateDoesNotExist错误

基于另一个数据帧计算总和

没有这样的命令';角色';-可靠分子

我用Kivy创建的应用程序在安卓系统上运行时出错.(attributeerror:';class';对象没有属性';_javaclass__cls_storage';)

如何计算累积几何平均数?

如何将多输入数据加载器传递给单输入模型

如何将列表和字典逐行组合在一起

提高时间复杂度的一些建议

如何通过从特定列创建分组多标题来reshape 数据框?

如何知道Pandas 列中的每个后续值是否都大于前面的值? Python相关

如何查找 tensorflow.python.data.ops.dataset_ops.MapDataset 对象的大小或形状,make_csv_dataset 的输出

将名字转换成姓氏、首字母和中间字母的格式

Python3 AttributeError:列表对象没有属性清除

如何并行化文件下载?

是否有与 Laravel 4 等效的 python?

tensorflow 中 numpy.newaxis 的替代方案是什么?

发送Electron邮件时的 MIMEText UTF-8 编码问题

迭代dict值

如何在多核上运行 Keras?

使用 python 3.0 的 Numpy