老师,i的值为什么再重构的时候就传不进去了?
来源:5-12 多线程、unittest、启动服务逻辑串联
我不帅
2021-08-30
Version:1.0 StartHTML:0000000128 EndHTML:0000010547 StartFragment:0000000128 EndFragment:0000010547 SourceURL:about:blank # -*- coding:UTF-8 -*-
import unittest, multiprocessing, time
class ParmTestCase(unittest.TestCase):
'''重写构造方法'''
def __init__(self,methodName='runTest',parame=None):
super(ParmTestCase,self).__init__(methodName)
global parames
parames = parame
print('重构的prames',parames)
class TestCase2(ParmTestCase):
@classmethod
def setUpClass(cls):
'''appium服务调用'''
print('setupclass中的参数:',parames)
def setpup(self):
'''用例环境准备'''
print('准备用例执行前的工作,如:回到首页等')
def test001(self):
'''登录用例判定运行结果'''
print("testcase里面的参数:",parames)
def tearDown(self):
'''用例环境清理'''
# print('清理用例执行后的工作')
@classmethod
def tearDownClass(cls):
'''整个环境清理'''
# print('清理掉所有环境信息,如:断开数据库连接等')
def get_suite(i):
print("get_suite里面的:",i)
suit = unittest.TestSuite()
suit.addTest(TestCase2('test001',parame=i))
unittest.TextTestRunner().run(suit)
if __name__ == '__main__':
threads = []
for i in range(2):
t = multiprocessing.Process(target=get_suite,args=(i,))
threads.append(t)
for j in threads:
j.start()
time.sleep(1)
运行结果:
test_case2.py 重构的prames None
setupclass中的参数: None
.testcase里面的参数: None
1回答
-
哈哈,我的错。我不该复杂化。我该直接统一让你们用 类变量。
class ParameTestCase(unittest.TestCase):
#params = None
def __init__(self, methodName="runTest", param=None):
super(ParameTestCase, self).__init__(methodName)
ParameTestCase.params = param
print('重写构造方法中的params:',ParameTestCase.params)
class CaseTest(ParameTestCase):
@classmethod
def setUpClass(cls):
print("这个是setupclass里面的参数:", ParameTestCase.params)
def setUp(self):
print("this is setup")
def test_01(self):
print("这个是测试方法1里面的:", ParameTestCase.params)
time.sleep(3)
def test_02(self):
print("这个是测试方法2里面的:", ParameTestCase.params)
time.sleep(3)
def tearDown(self):
print("this is teardown")
@classmethod
def tearDownClass(cls):
print("this is class teardown")
def get_suite(i):
suite = unittest.TestSuite()
suite.addTest(CaseTest("test_01", param=i))
suite.addTest(CaseTest("test_02", param=i))
unittest.TextTestRunner().run(suite)
if __name__ == '__main__':
threads = []
for i in range(5):
print(">>>>>>>>>>>>>>"+str(i))
t = threading.Thread(target=get_suite, args=(i,))
threads.append(t)
for j in threads:
j.start()
00
相似问题