python中unittest載入測試用例的4種方法
阿新 • • 發佈:2018-12-30
方式一:unittest.main()
import unittest
class TEST1(unittest.TestCase):
def setUp(self):
print("\n")
print("test_case_start")
def test_1_step(self):
print("test_1_step_start")
def test_2_step(self):
print("test_2_step_start")
if __name__ == '__main__':
unittest.main()
結果:
test_case_start
test_1_step_start
test_case_start
test_2_step_start
方式二:runner.run(discover)
(1)test1_register程式碼:
import unittest
class TEST1(unittest.TestCase):
def setUp(self):
print("\n")
print("test_case_start")
def test_1_step(self):
print("test_1_step_start" )
def test_2_step(self):
print("test_2_step_start")
(2)test2_open程式碼:
import unittest
class TEST2(unittest.TestCase):
def setUp(self):
print("\n")
print("test2_case_start")
def test2_1_step(self):
print("test2_1_step_start")
def test2_2_step(self) :
print("test2_2_step_start")
截圖:
(3)main檔案:
import os
import unittest
cash_path = os.path.join(os.getcwd(),'../test_case')
print('檔案地址:', os.getcwd())
print("cash_path:", cash_path)
discover = unittest.defaultTestLoader.discover(cash_path,
pattern="test*.py",
top_level_dir=None)
# top_level_dir : 這個是頂層目錄的名稱,一般預設等於None就行了
if __name__ == '__main__':
runner = unittest.TextTestRunner()
runner.run(discover)
(4)結果:
檔案地址: D:\MyProjects\haolyy_new\main
cash_path: D:\MyProjects\haolyy_new\main\../test_case
test_case_start
test_1_step_start
test_case_start
test_2_step_start
test2_case_start
test2_1_step_start
test2_case_start
test2_2_step_start
方式三:unittest.TextTestRunner().run(suite)
(1)test1_register程式碼:
import unittest
class TEST1(unittest.TestCase):
def setUp(self):
print("\n")
print("test_case_start")
def test_1_step(self):
print("test_1_step_start")
def test_2_step(self):
print("test_2_step_start")
def test1_suit():
suite = unittest.TestSuite()
suite.addTest(TEST1("test_1_step"))
suite.addTest(TEST1("test_2_step"))
unittest.TextTestRunner().run(suite)
(2)test2_open程式碼:
import unittest
class TEST2(unittest.TestCase):
def setUp(self):
print("\n")
print("test2_case_start")
def test2_1_step(self):
print("test2_1_step_start")
def test2_2_step(self):
print("test2_2_step_start")
def test2_suit():
suite = unittest.TestSuite()
suite.addTest(TEST2("test2_1_step"))
suite.addTest(TEST2("test2_2_step"))
unittest.TextTestRunner().run(suite)
方式三:
(3)main檔案
from test1_register import *
from test2_open import *
if __name__ == '__main__':
test1_suit()
test2_suit()
(4)結果:
test_case_start
test_1_step_start
test_case_start
test_2_step_start
test2_case_start
test2_1_step_start
test2_case_start
test2_2_step_start
方式四:suit = unittest.makeSuite(class name)
import unittest
class AlienTest1(unittest.TestCase):
def test_1_run(self):
print("hello world_1")
def test_2_run(self):
print("hello world_2")
def test_3_run(self):
print("hello world_3")
class AlienTest2(unittest.TestCase):
def test_4_run(self):
print("hello world_4")
def test_5_run(self):
print("hello world_5")
def test_6_run(self):
print("hello world_6")
if __name__ == '__main__':
suite1 = unittest.makeSuite(AlienTest1)
suite2 = unittest.makeSuite(AlienTest2)
unittest.TextTestRunner().run(suite1)
unittest.TextTestRunner().run(suite2)
最終結果:
hello world_1
hello world_2
hello world_3
hello world_4
hello world_5
hello world_6
其實這個方法和方法二類似,只是建立suite的方式不一樣