unittestユニットテストフレームワークの簡単な使用
2761 ワード
一、ユニットテストフレームワークが提供する機能:
1、用例の作成規範と実行;
2、専門的な比較方法(断言)を提供する.
3、豊富なテストログを提供する:失敗ログ、成功用例数、失敗用例数、実行時間などを提供する.
ユニットテストが提供する機能を見ると、異なるレベルのテストを提供するのに役立ちます.ユニットテスト:unittest HTTPインタフェース自動化テスト:unittest+Requests Web UI自動化テスト:unittest+selenium モバイルオートメーションテスト:unittest+appium 二、試験用例の作成
1、被験関数:
2、テスト関数の作成:
解析:
まず、
ユニットテストフレームワークをimportでunittest導入します.
ModuleTestクラス継承unittestを作成します.TestCaseクラス.
setUp()およびtearDown()は、各テスト・インスタンスの開始および終了であり、setUp()メソッドは、変数の初期化、データベース・テスト・データの生成、ブラウザのオープンなど、テスト・インスタンスの実行前の初期化作業に使用されます.teardownは逆です.
unittestでは、テスト例を「test」で始まるように要求します.例:test_add;
次に、
unittestを呼び出す.TestSuite類のaddTest()メソッドはテストキットにテスト用例を追加する.
最後にunittest.TextTestRunner()クラスのrun()メソッドは、テストキットのテスト例を実行します.
すべてのテストケースを実行するにはif__を使用します.name__ == "__main__":下のunittest.main()関数.mainメソッドは、現在のファイル継承unittestを自動的に検索します.TestSuiteクラスのテストクラスは、テストクラスの下で「test」で始まる方法と一致して実行される.
実行結果:
Testing started at 12:33 ... C:\Users\46297\PycharmProjects\unittestTest\venv\Scripts\python.exe "E:\softwareInstall\PyCharm Community Edition 2018.1\helpers\pycharm\_jb_unittest_runner.py"--path C:/Users/46297/PycharmProjects/unittestTest/test.py Launching unittests with arguments python -m unittest C:/Users/46297/PycharmProjects/unittestTest/test.py in C:\Users\46297\PycharmProjects\unittestTest
Ran 4 tests in 0.005s
OK
Process finished with exit code 0
1、用例の作成規範と実行;
2、専門的な比較方法(断言)を提供する.
3、豊富なテストログを提供する:失敗ログ、成功用例数、失敗用例数、実行時間などを提供する.
ユニットテストが提供する機能を見ると、異なるレベルのテストを提供するのに役立ちます.
1、被験関数:
class Calculator():
def __init__(self,a,b):
' 、 、 、 '
self.a = int(a)
self.b = int(b)
#
def add(self):
return self.a+self.b
def sub(self):
return self.a-self.b
def mul(self):
return self.a * self.b
def div(self):
return self.a / self.b
2、テスト関数の作成:
import unittest
from module import Calculator
class ModuleTest(unittest.TestCase):
def setUp(self):
self.cal = Calculator(8,4)
def tearDown(self):
pass
def test_add(self):
result = self.cal.add()
self.assertEqual(result,12)
def test_sub(self):
result = self.cal.sub()
self.assertEqual(result,4)
def test_mul(self):
result = self.cal.mul()
self.assertEqual(result,32)
def test_div(self):
result = self.cal.div()
self.assertEqual(result,2)
if __name__ == "__main__":
#
#unittest.main()
suite = unittest.TestSuite()
suite.addTest(ModuleTest("test_add"))
suite.addTest(ModuleTest("test_sub"))
suite.addTest(ModuleTest("test_mul"))
suite.addTest(ModuleTest("test_div"))
runner = unittest.TextTestRunner()
runner.run(suite)
解析:
まず、
ユニットテストフレームワークをimportでunittest導入します.
ModuleTestクラス継承unittestを作成します.TestCaseクラス.
setUp()およびtearDown()は、各テスト・インスタンスの開始および終了であり、setUp()メソッドは、変数の初期化、データベース・テスト・データの生成、ブラウザのオープンなど、テスト・インスタンスの実行前の初期化作業に使用されます.teardownは逆です.
unittestでは、テスト例を「test」で始まるように要求します.例:test_add;
次に、
unittestを呼び出す.TestSuite類のaddTest()メソッドはテストキットにテスト用例を追加する.
最後にunittest.TextTestRunner()クラスのrun()メソッドは、テストキットのテスト例を実行します.
すべてのテストケースを実行するにはif__を使用します.name__ == "__main__":下のunittest.main()関数.mainメソッドは、現在のファイル継承unittestを自動的に検索します.TestSuiteクラスのテストクラスは、テストクラスの下で「test」で始まる方法と一致して実行される.
実行結果:
Testing started at 12:33 ... C:\Users\46297\PycharmProjects\unittestTest\venv\Scripts\python.exe "E:\softwareInstall\PyCharm Community Edition 2018.1\helpers\pycharm\_jb_unittest_runner.py"--path C:/Users/46297/PycharmProjects/unittestTest/test.py Launching unittests with arguments python -m unittest C:/Users/46297/PycharmProjects/unittestTest/test.py in C:\Users\46297\PycharmProjects\unittestTest
Ran 4 tests in 0.005s
OK
Process finished with exit code 0