Unittest テストフレームワーク (概要共有 2)

1. 内蔵デコレータ

1.1 .背景とシーンを使用する

         1.1.1. 自動テストのプロセスでは、一部のテストケースは実行する必要がない場合がありますが、ユースケースは削除できないためスキップする必要があります。ユースケースが実行されない場合は、unittest が提供するデコレータ関数が必要です。 . ;

          1.1.2. アプリケーションシナリオ:

                     1. 無条件スキップ。

                     2. 条件が満たされる場合はスキップします。

                     3. 条件が満たされない場合はスキップします。

1.2. アプリケーションシナリオ 1: 無条件スキップ

          1.2.1. デコレータ: @unittest.skip('skip info')、無条件にスキップ

          1.2.2. コード:

# 内置装饰器 @unittest.skip('skip info')

import unittest

"""
@unittest.skip('skip info'),无条件跳过
"""

class MyTest(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        print("setUpClass")

    @classmethod
    def tearDownClass(cls):
        print("tearDownClass")

    def setUp(self):
        print("初始化")

    def tearDown(self):
        print("数据清理")

    @unittest.skip('skip info')
    def test_1(self):
        print("用例:1")

    def test_2(self):
        print("用例:2")

    def test_3(self):
        print("用例:3")

    def test_4(self):
        print("用例:4")

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

          1.2.3. 実行結果 (test_1 が実行、スキップ): 

1.3. 適用シナリオ 2: 条件が満たされた場合にスキップ 

           1.3.1、デコレータ       @unittest.skip (条件, 'info')を除く、条件が満たされる

           1.3.2、コード

# 内置装饰器 @unittest.skip('skip info')

import unittest

"""
@unittest.skipIf(条件, 'info'),满足条件跳过
"""

class MyTest(unittest.TestCase):
    a = 4
    @classmethod
    def setUpClass(cls):
        print("setUpClass")

    @classmethod
    def tearDownClass(cls):
        print("tearDownClass")

    def setUp(self):
        print("初始化")

    def tearDown(self):
        print("数据清理")

    @unittest.skipIf(a>3, 'info')
    def test_1(self):
        print("用例:1")

    def test_2(self):
        print("用例:2")

    def test_3(self):
        print("用例:3")

    def test_4(self):
        print("用例:4")

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

           1.3.3. 実行結果

1.4.適用シナリオ3:条件が満たされない場合はスキップ

            1.4.1、デコレータ   @unittest.skip until (condition, 'info')、条件が満たされない

            1.4.2、コード

# 内置装饰器 @unittest.skip('skip info')

import unittest

"""
@unittest.skipUnless(条件, 'info'),不满足条件跳过
"""

class MyTest(unittest.TestCase):
    a = 4
    @classmethod
    def setUpClass(cls):
        print("setUpClass")

    @classmethod
    def tearDownClass(cls):
        print("tearDownClass")

    def setUp(self):
        print("初始化")

    def tearDown(self):
        print("数据清理")

    @unittest.skipUnless(a>5, 'info')
    def test_1(self):
        print("用例:1")

    def test_2(self):
        print("用例:2")

    def test_3(self):
        print("用例:3")

    def test_4(self):
        print("用例:4")

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

            1.4.3. 実行結果

2.コマンドライン実行テスト

2.1. テストディレクトリ全体のテストファイルを実行する

          2.1.1. ターミナルを開きます。

          2.1.2. cd コマンドは、.py が保存されているテスト ファイル ディレクトリに切り替えます。

          2.1.3. コマンドラインを実行します: python3 -m Unittest -v *.py 

          2.1.4. 実行結果:(すべてのユースケースの実行結果が出力されます)

 2.2.ディレクトリに指定されたテストファイルを実行する

             2.2.1.ターミナルを開きます。

            2.2.2. cd コマンドは、.py が保存されているテスト ファイル ディレクトリに移動します。

            2.2.3.コマンドラインを実行します: python3 -m Unittest -v 実行するファイル名:

                          例:python3 -m unittest -v  file_1.py

            2.2.4.実行結果:

 3.指定されたファイル内の指定されたテスト セットまたは特定のテスト ケースを実行します。

         3.3.1. ターミナルを開きます。

         3.3.2. cd コマンドは、.py が保存されているテスト ファイル ディレクトリに切り替えます。

 

         3.3.3. コマンドラインを実行します: python3 -m Unittest -v filename.classname.methodname

                      クラスの下のすべてのユースケースを実行します: python3 -m Unittest -v filename.classname

                       例: ファイル file_1.py 内のクラス Test_1 内のテスト ケース test_2 を実行します。

                                python3 -m ユニットテスト -v file_1.Test_1.test_2

         3.3.4. 実行結果:

 

         

 

おすすめ

転載: blog.csdn.net/weixin_44701654/article/details/127949084