想要将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
相似问题