swa*_*wan 107 python unit-testing
是否有一个在测试场景的开头/结尾触发的函数?函数setUp和tearDown在每次测试之前/之后触发.
我通常想拥有这个:
class TestSequenceFunctions(unittest.TestCase):
def setUpScenario(self):
start() #launched at the beginning, once
def test_choice(self):
element = random.choice(self.seq)
self.assertTrue(element in self.seq)
def test_sample(self):
with self.assertRaises(ValueError):
random.sample(self.seq, 20)
for element in random.sample(self.seq, 5):
self.assertTrue(element in self.seq)
def tearDownScenario(self):
end() #launched at the end, once
Run Code Online (Sandbox Code Playgroud)
现在,这些setUp和tearDown是单元测试并在我的所有场景中传播(包含许多测试),一个是第一个测试,另一个是最后一个测试.
Cur*_*ner 51
我有相同的场景,对我来说setUpClass和tearDownClass方法完美无缺
import unittest
class Test(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls._connection = createExpensiveConnectionObject()
@classmethod
def tearDownClass(cls):
cls._connection.destroy()
Run Code Online (Sandbox Code Playgroud)
小智 6
这是一个示例:3 个测试方法访问一个共享资源,该资源创建一次,而不是每个测试。
import unittest
import random
class TestSimulateLogistics(unittest.TestCase):
shared_resource = None
@classmethod
def setUpClass(cls):
cls.shared_resource = random.randint(1, 100)
@classmethod
def tearDownClass(cls):
cls.shared_resource = None
def test_1(self):
print('test 1:', self.shared_resource)
def test_2(self):
print('test 2:', self.shared_resource)
def test_3(self):
print('test 3:', self.shared_resource)
Run Code Online (Sandbox Code Playgroud)