Python 2.7 __在测试类中找不到init__;变量?

Python 2.7 __在测试类中找不到init__;变量?,python-2.7,class,testing,nose2,Python 2.7,Class,Testing,Nose2,我最近从使用nose改为使用nose2,但是在这个过程中,我的很多测试代码似乎都被破坏了。特别是我在测试类“self.mir_axis”中输入的init变量给出了以下错误: mirror_index = mirror_matrix.index(self.mir_axis) AttributeError: 'TestConvert' object has no attribute 'mir_axis' 这曾经适用于nose,但是由于某些原因,nose2 myinit变量不再注册。我是不是遗漏了什

我最近从使用nose改为使用nose2,但是在这个过程中,我的很多测试代码似乎都被破坏了。特别是我在测试类“self.mir_axis”中输入的init变量给出了以下错误:

mirror_index = mirror_matrix.index(self.mir_axis)
AttributeError: 'TestConvert' object has no attribute 'mir_axis'
这曾经适用于nose,但是由于某些原因,nose2 myinit变量不再注册。我是不是遗漏了什么?我使用Python2.7.3和eclipse作为IDE

from nose2.compat import unittest
from nose2.tools import params
from nose2 import session
from nose2.events import ReportTestEvent
from nose2.plugins import testid
from nose2.tests._common import (FakeStartTestEvent, FakeLoadFromNameEvent,
                                 FakeLoadFromNamesEvent, TestCase)#
# Import maya modules
import maya.cmds as mc
# Absolute imports of other modules
from neo_autorig.scripts.basic import name
from neo_autorig.scripts.basic import utils

# Test class for converting strings
class TestConvert(TestCase):
    counter = 0 # counter to cycle through mir_axes

    def _init__(self):
        mir_axes = ['xy', '-xy', 'yz', '-yz'] # different axes to be applied
        self.mir_axis = mir_axes[self.__class__.counter]
        self.__class__.counter += 1 # increase counter when run
        if self.__class__.counter > 3:
            self.__class__.counter = 0 # if counter reaches max, reset
        self.utils = utils.Utils(self.mir_axis, False) # pass module variables

    def setUp(self): # set up maya scene
        side_indicator_l = mc.spaceLocator(n='side_indicator_left')[0]
        side_indicator_r = mc.spaceLocator(n='side_indicator_right')[0]
        mirror_matrix = ['xy', '-xy', 'yz', '-yz']
        trans_matrix = ['tz', 'tz', 'tx', 'tx']
        side_matrix = [1, -1, 1, -1]
        mirror_index = mirror_matrix.index(self.mir_axis)
        mc.setAttr(side_indicator_l+'.'+trans_matrix[mirror_index], side_matrix[mirror_index])
        mc.setAttr(side_indicator_r+'.'+trans_matrix[mirror_index], side_matrix[mirror_index]*-1)

    def tearDown(self): # delete everything after
        mc.delete('side_indicator_left', 'side_indicator_right')

     def test_prefix_name_side_type(self): # test string
            nc = name.Name('prefix_name_side_type')
            existing = nc.get_scenenames('transform')
            self.assertEqual(nc.convert('test', 'empty', self.utils.find_side('side_indicator_left'),
                'object', existing), 'test_empty_l_object')
            self.assertEqual(nc.convert('test', 'empty', self.utils.find_side('side_indicator_right'),
                'object', existing), 'test_empty_r_object')

# run if script is run from inside module
if __name__ == '__main__':
    import nose2
    nose2.main()

我发现您发布的代码片段存在两个问题:

第一个是
def\u init\u(self):
缺少下划线;它应该是
def\uuuu init\uuuu(self):

第二个(似乎是错误的原因)是
\u init\uuuu
中的第一行,
mir\u轴=['xy','-xy',…
,应该是
self.mir\u轴=…

编辑
你应该使用
setUp
而不是
\uuuu init\uuuuu
,不管怎样,根据你的名声:

哦,一定是错过了重新编辑代码以适应nose2。现在我收到一个错误,说
TypeError:\uuu init\uuuuuuu()正好接受一个参数(给定两个)