1 import unittest 2 import ddt #裝飾器 3 from ddt import ddt,data,unpack #導入ddt中的各個模塊 4 from homework.unittest_http_request_20190321.Method_http_request import * 5 6 @ddt #裝飾測試類 7 class TestHttpRq(unittest.TestCase): #測試類-get請求 8 9 @data({"mobilephone":"","pwd":"183456"}, 10 {"mobilephone":"18688773467","pwd":""}, 11 {"mobilephone": "18688773467", "pwd": "123457"}, 12 {"mobilephone":"18688773467","pwd":"123456"}) #裝飾方法,遍歷data中的元素 13 def test_http_rq_login(self,login_data):#測試用例必須以test開頭,不然報錯 14 exp = ["用戶名或密碼錯誤","登錄成功","手機號不能為空","密碼不能為空"] 15 res = HttpRequest("get",login_data).http_request().json()['msg'] 16 self.assertIn(res,exp)#斷言,判斷實際值與預期值是否一致
1 D:\Python34\python.exe "D:\Program Files\JetBrains\PyCharm Community Edition 2017.2.3\helpers\pycharm\_jb_unittest_runner.py" --target unittest_http_rq.TestHttpRq.test_http_rq_login 2 Testing started at 13:10 ... 3 Launching unittests with arguments python -m unittest unittest_http_rq.TestHttpRq.test_http_rq_login in D:\python15期\homework\ddt_20190323 4 5 Traceback (most recent call last): 6 File "D:\Program Files\JetBrains\PyCharm Community Edition 2017.2.3\helpers\pycharm\_jb_unittest_runner.py", line 35, in <module> 7 main(argv=args, module=None, testRunner=unittestpy.TeamcityTestRunner, buffer=not JB_DISABLE_BUFFERING) 8 File "D:\Python34\lib\unittest\main.py", line 92, in __init__ 9 self.parseArgs(argv) 10 File "D:\Python34\lib\unittest\main.py", line 139, in parseArgs 11 self.createTests() 12 File "D:\Python34\lib\unittest\main.py", line 146, in createTests 13 self.module) 14 File "D:\Python34\lib\unittest\loader.py", line 157, in loadTestsFromNames 15 suites = [self.loadTestsFromName(name, module) for name in names] 16 File "D:\Python34\lib\unittest\loader.py", line 157, in <listcomp> 17 suites = [self.loadTestsFromName(name, module) for name in names] 18 File "D:\Python34\lib\unittest\loader.py", line 125, in loadTestsFromName 19 parent, obj = obj, getattr(obj, part) 20 AttributeError: type object 'TestHttpRq' has no attribute 'test_http_rq_login' 21 22 Process finished with exit code 1 23 Empty test suite.
運行程序時將鼠標定位在類或者程序外運行解決,ddt只能運行整體,不能運行局部即單個測試方法
