unittestフレームワーク学習

7753 ワード

1、命名規則
test_での先頭にある
1 impot unittest
2 
3 class Cs(unittest.TestClass):
4     def test_01(self):
5         pass

 
2、装飾器:
@classmethodは1回のみ実行
@unitest.skip(reason) で テストをスキップし、 @ unittest.skipif(conditition , reasonconditition true
@unittest.skipunless(condition,reason) condition trueでない テストをスキップ
@expected failure @unittest.expectedFailure 、testが した 、 したcaseには されません
 1 import unittest
 2 
 3 
 4 class TsetCase(unittest.TestCase):
 5     #  
 6     @classmethod
 7     def tearDownClass(cls):
 8         print(' !!')
 9 
10     @classmethod
11     def setUpClass(cls):
12         print(' !!')
13 
14     @unittest.skip(' ')
15     def test_01(self):
16         a = 1
17         b = 2
18         self.assertEqual(a + b, 3)
19 
20 if __name__ == '__main__':
21     unittest.main()

:https://www.jianshu.com/p/ba5dbcb5d71b
 
3'、 キット:unittest moduleは、unittestを する を し、カスタマイズされたtest classを します.unitest.TestCasetest methodtestで まり、 は によって べ え、 な :
①tearDownClass(cls)テスト の
②setuUpClass(cls)
③setUp(self)テストを するたびに1 する
④tearDown(self)は、テストの が するたびに する
テスト を します.
unittest.main()はすべてのcaseを します
unittest.TestSuite()テストキット
runner = unittest.TextTestRunner()TextTestRunnerクラスのインスタンス
import unittest


class TsetCase(unittest.TestCase):
    #  
    @classmethod
    def tearDownClass(cls):
        print(' !!')

    @classmethod
    def setUpClass(cls):
        print(' !!')

    def setUp(self):
        print(' ')

    def tearDown(self):
        print(' ')

    @unittest.skip(' ')
    def test_01(self):
        a = 1
        b = 2
        self.assertEqual(a + b, 3)

    def test_02(self):
        a = 2
        b = 3
        self.assertEqual(a+b,4)

if __name__ == '__main__':
    # unittest.main()
    # suite = unittest.TestSuite()
    # suite.addTest(TsetCase('test_01'))
    # runner = unittest.TextTestRunner()
    # runner.run(suite)
    ljwj = r'F:\ \ \TestCases'
    cszx = unittest.defaultTestLoader.discover(start_dir=ljwj , pattern='test_*.py')
    runner = unittest.TextTestRunner()
    runner.run(cszx)