Python 2.7 unittest.skipif()的问题

Python 2.7 unittest.skipif()的问题,python-2.7,Python 2.7,我使用单元测试框架在类中运行一些测试。我还有一个名为connected_模拟器的助手函数。 如果条件为真,我想跳过test_get_emulator_设备,情况就是这样 我的问题是在运行测试时收到以下消息: def connected_emulators(self): try: subprocess.check_output(['adb', '-e', 'get-serialno']) except subprocess.CalledProcessError:

我使用单元测试框架在类中运行一些测试。我还有一个名为connected_模拟器的助手函数。 如果条件为真,我想跳过test_get_emulator_设备,情况就是这样

我的问题是在运行测试时收到以下消息:

def connected_emulators(self):
    try:
        subprocess.check_output(['adb', '-e', 'get-serialno'])
    except subprocess.CalledProcessError:
        return False
    return True
@unittest.skipIf(not(self.connected_emulators()), 'Expected failure, no 
emulators connected')  
def test_get_emulator_device(self):
    device = get_emulator_device()
    self.assertIsInstance(device, AndroidDevice)
输出:
@unittest.skipIf(not(self.connected_emulators()),'Expected failure,no emulators connected')NameError:name“self”未定义

加载模块时计算
@unittest.skipIf
修饰符的参数,因为在定义方法时(在模块加载时)应用修饰符。此时,没有测试类的实例,因此“self”没有任何意义。“self”仅在类方法中有意义

您只需将
connected\u仿真器
方法作为全局范围的函数移出,这样您就可以在不需要测试类实例的情况下调用它。根据您发布的代码,我看不出为什么它必须是类的方法

def connected_emulators():
    try:
        subprocess.check_output(['adb', '-e', 'get-serialno'])
    except subprocess.CalledProcessError:
        return False
    return True

class MyTestClass:
    @unittest.skipIf(not(connected_emulators()), 'Expected failure, no emulators connected')  
    def test_get_emulator_device(self):
        device = get_emulator_device()
        self.assertIsInstance(device, AndroidDevice)