想要将ParameTestCase、case、多线程执行case分开为三个文件,提高代码可读性,但出现params传递出现错误
来源:5-14 多进程、unittest、HTMLTestRunner、启动服务流程梳理代码重构

weibo_喔在路上_0
2018-05-28
老师你好,我想将代码拆分,但目前遇到parames传递值的问题,希望老师能帮忙答疑解惑,谢谢 1、包名:parame_testcase class ParameTestCase(unittest.TestCase): def __init__(self, methodName = 'runTest', parame = None): super(ParameTestCase, self).__init__(methodName) # 全局变量 global parames self.parames = parame
2、包名:test_takePicture class Test_takePicture(ParameTestCase): u'''test about take pictures''' @classmethod def setUpClass(cls): print('setUpClass---->',ParameTestCase.parames) cls.camera = CameraBusiness(ParameTestCase.parames) @classmethod def tearDownClass(cls): print('this is teardown class') def setUp(self): print('this is setup') def tearDown(self): print('this is teardown') def test_01(self): u'''1 and 1''' print('testcase01里面的参数,',ParameTestCase.parames) self.camera.take_pictures() if __name__ == '__main__': unittest.main()
3、包名: def appium_init_server(): ''' 启用appium :return: ''' server = Server() server.main_thread_server() def get_count(): ''' 获得设备行数 :return: ''' edityaml = EditYaml() count = edityaml.get_file_lines() return count def get_suite(i): print("get_suite里面的", i) suite = unittest.TestSuite() suite.addTest(test_takePicture.Test_takePicture("test_01", parame=i)) #suite.addTest(unittest.makeSuite(test_2.Test_2,parame = i)) unittest.TextTestRunner().run(suite) # 导入当前时间,使用time模块的相关函数 # now=time.strftime("%Y-%m-%d_%H-%M-%S",time.localtime()) # html_file = '../report/report'+ str(i) +'.html' # fp = open(html_file,'wb') # runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title='test result', description=u'result:') # runner.run(suite) # fp.close() # 使用多线程 if __name__ == '__main__': appium_init_server() # get_suite(0) threads = [] for i in range(get_count()): print(i) t = multiprocessing.Process(target=get_suite, args=(i,)) threads.append(t) for j in threads: j.start()
写回答
1回答
-
思路不错,但是建议你把python继承这块儿的知识看一下,test_takePicture.Test_takePicture("test_01", parame=i)这里往里面传递的时候
@classmethod
def setUpClass(cls):
这个里面你这样直接先打印parame,然后你学会调试。现在你的问题出现再继承那里。
062018-07-27
相似问题