老师,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回答

Mushishi

2021-08-31

哈哈,我的错。我不该复杂化。我该直接统一让你们用 类变量。

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()





0
0

Python主讲移动端自动化测试框架Appium

APP自动化基础知识、po模型、关键字模型、服务自动化、持续集成

1508 学习 · 1333 问题

查看课程