代码改变世界

python unittest自动化执行的几种方式

2021-06-03 18:13  HQS_blog  阅读(469)  评论(0编辑  收藏  举报

1.命令行执行

1.1执行路径下符合匹配条件的测试用例

  python -m unittest discover -s  +测试用例路径  -p  +测试用的匹配格式

  python -m unittest discover -s D:\yx\project\yx_ydsj\cases -p "*.py"

1.2 执行所在路径下的所有的unittest测试用例

  python -m unittest 

1.3单个测试用例执行

  python +测试用例路径

1.4 python -m unittest test_case.TestCase.test_01  执行test_case包下面的TestCase类的test_01方法

 

2.代码执行

2.1 使用unittest.main(),执行所在文件中的测试用例

if __name__ == "__main__":
    unittest.main()

2.1使用TestLoader,可以加入任意想执行的测试用例,组合比较方便

if __name__ == "__main__":
    suite1 = unittest.TestLoader().loadTestsFromTestCase(TestLogin("test_login"))
    suite2 = unittest.TestLoader().loadTestsFromTestCase(TestWelMessage("test_addWelcomeMessage"))
    suite = unittest.TestSuite([suite1, suite2])
    unittest.TextTestRunner(verbosity=2).run(suite)

2.2 使用 discover

#coding:utf-8
import time
from Lib import HTMLTestRunner
import unittest
import os
import sys

from cases.Test_yx_Login import TestLogin
from cases.Test_yx_yl_welmessage import TestWelMessage

case_path = os.path.join(os.path.dirname(os.path.realpath("../cases/*")))

#时间
now = time.strftime("-%Y-%m-%d-%H-%M-%S")
report_path = os.path.join(os.getcwd(),"report{0}.html".format(now))


if __name__ == "__main__":
    suite = unittest.defaultTestLoader.discover(case_path,pattern="Test*.py")
    fr = open(report_path,"wb")
    runner = HTMLTestRunner.HTMLTestRunner(stream=fr,title=u"自动化测试报告",description=u"自动化测试用例运行结果如下:")
    runner.run(suite)

 

 2.3使用测试套件,(暂时还没使用,使用的时候再整理)

suite = unittest.TestSuite()
suite.addTest(UTest('test_isupper'))
suite.addTest(UTest('test_upper'))