fin*_*pin 8 python unit-testing nosetests
我正在尝试使用不同的setUp方法运行相同的测试用例.我尝试过使用nosetests并参数化,但似乎它不支持参数化setUp方法.这是我正在尝试做的一个例子:
...
from nose_parameterized import parameterized
class Example(unittest.TestCase):
@parameterized.expand(['device1', 'device2'])
def setUp(self, device):
desired_caps = {}
desired_caps['key1'] = device
desired_caps['key2'] = 'constant value'
self.driver = webdriver.Remote(url, desired_caps)
def tearDown(self):
self.driver.quit()
def test_app_launch(self):
# assert something
Run Code Online (Sandbox Code Playgroud)
错误是:TypeError: setUp() takes exactly 2 arguments (1 given)
.
有没有其他方法如何参数化setUp方法?我也研究了测鼻仪发生器,但它似乎也没有办法.
使用类属性:
class Example(unittest.TestCase):
# change before running tests
device = None
# make sure device is initialized
def setUpClass(cls):
if not cls.device:
raise Exception("Please initialize device before running tests")
def setUp(self):
# consider moving to 'setUpClass'
desired_caps = {}
desired_caps['key1'] = Example.device
desired_caps['key2'] = 'constant value'
self.driver = webdriver.Remote(url, desired_caps)
def tearDown(self):
self.driver.quit()
def test_app_launch(self):
# assert something
Run Code Online (Sandbox Code Playgroud)
并分别对每个设备运行测试。您的代码建议可以将更多内容移至该setUpClass
方法。