gpt4 book ai didi

Python unittest,使用基本测试类时跳过测试

转载 作者:太空狗 更新时间:2023-10-30 00:11:16 25 4
gpt4 key购买 nike

为了清晰起见,在测试我们的一个网络应用程序时,我创建了一个 BaseTestClass继承unittest.TestCase . BaseTestClass包括我的 setUp()tearDown()方法,我的每一个 <Page>Test然后类继承自。

由于不同的被测设备具有相似的页面但有些不同,我想使用 @unittest.skipIf()装饰器,但证明它很困难。而不是从 BaseTestClass 中“继承”装饰器,如果我尝试使用装饰器,Eclipse 会尝试自动导入 unittest.TestCase进入<Page>Test ,这对我来说似乎不对。

有没有办法使用 skip使用 Base 时的装饰器?

class BaseTestClass(unittest.TestCase):

def setUp():
#do setup stuff
device = "Type that blocks"

def tearDown():
#clean up

单独模块中的测试类之一:

class ConfigPageTest(BaseTestClass):

def test_one(self):
#do test

def test_two(self):
#do test

@unittest.skipIf(condition, reason) <<<What I want to include
def test_three(self):
#do test IF not of the device type that blocks

最佳答案

显然这需要 unittest2(或 Python 3,我假设),但除此之外,您的示例非常接近。确保您的单元测试发现机制发现了您的真实测试代码的名称(test_*.py for nose)。

#base.py
import sys
import unittest2 as unittest

class BaseTestClass(unittest.TestCase):

def setUp(self):
device = "Type that blocks"
def tearDown(self):
pass

在实际代码中:

# test_configpage.py
from base import *

class ConfigPageTest(BaseTestClass):

def test_one(self):
pass

def test_two(self):
pass

@unittest.skipIf(True, 'msg')
def test_three(self):
pass

给出输出

.S.
----------------------------------------------------------------------
Ran 3 tests in 0.016s

OK (SKIP=1)

关于Python unittest,使用基本测试类时跳过测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20616540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com