使用global未能打印参数的传递值

来源:5-12 多线程、unittest、启动服务逻辑串联

19travelSky

2019-04-09

#/usr/bin/python
#encoding:utf-8
import unittest
import threading

class ParameTestCase(unittest.TestCase):
    def __init__(self,methodName='runTest',parame=None):
        super(ParameTestCase,self).__init__(methodName)   #重写父类构造方法
        global parames
        parames=parame

class CaseTest(ParameTestCase):
    @classmethod
    def setUpClass(cls):
        print "setUpClass >>>",parames

    def setUp(self):
        print "this is setUp\n"

    def test_01(self):
        print "test case里面的参数",parames

    def tearDown(self):
        print "this is tearDown\n"

    @classmethod
    def tearDownClass(cls):
        print "this is class tearDown\n"

def get_suite(i):
    print "get_suite里面的",i
    suite = unittest.TestSuite()
    suite.addTest(CaseTest("test_01",parame=i))
    unittest.TextTestRunner().run(suite)

if __name__ == '__main__':
    threads = []
    for i in range(2):
        print i
        t = threading.Thread(target=get_suite, args=(i,))
        threads.append(t)
    for j in threads:
        j.start()

http://img.mukewang.com/szimg/5cab739d0001bd9408710536.jpg

写回答

2回答

J_DP

2019-07-10

Pycharm运行自动默认跑unittest,不是脚本,不会跑if __name=='__main__  ,pycharm 的需要设置用python跑脚本

0
1
19travelSky
非常感谢!
2019-07-10
共1条回复

Mushishi

2019-04-09

你pycharm运行方式有问题吧。//img.mukewang.com/szimg/5cac2b590001fc3b10781027.jpg你代码复制过来直接运行的哟。这个没问题,这个参数传递进去了,只是线程参数共享这个后面会讲解。

0
0

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

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

1508 学习 · 1333 问题

查看课程