unittestのユニット・テスト・フレームは、テストユニットに、テストケースかどうかを判定することによって、豊富なアサーションをテストケースを実行するために編成し、提供することができるWEB自動テスト開発とテストフレームの実行を適用することができ、試験結果は、最終を生成するだけでなく、適用することができます。パイソンの基礎のセクションとunittestの精巧ではない、我々は深い理解ああ、ここでは全体のunittest 4より重要な概念である百度に無料です。
テストフィクスチャ
テストケース
テストスイート
テストランナー
テスト・フィクスチャ:要するに、テスト中にいくつかのことを行うには、ファイルやディレクトリ、一時的なデータベースを作成するよう、準備する必要があるのsetUp()とセットダウン()は、最も一般的に使用される方法です。
テストケース:順番に基底クラス試験方法ユーザー定義の場合、コールrun()メソッドは、セットアップ方法、実施形態の実行、ティアダウン()メソッドを呼び出します。
テストスイート:実施例がないためないであろう追加する場合addTestにより手動テストケースを増加させるための()メソッドするテスト・ケースのセット、自動テストケースTestLoader、TestLoaderの使用によって添加してもよいです。
テストランナー:実行中のテストドライバークラスはテストケースを実行することができる、また、テストスイートを実行します。テストケースとテストスイートを実行した後、自動的にTestResultを管理します。
次のサンプルコードを貼り付けすることは、単純なユニットテストです。
import unittest
import HTMLTestRunner
import time
class TestCases(unittest.TestCase):
def setUp(self):
print("每一条case执行之前都会执行这个方法")
def tearDown(self):
print("每一条case执行之后都会执行这个方法\n")
def test_testcase1(self):
print("这是一条测试用例case1")
a = "hello"
try:
self.assertTrue(a.isalpha())
print("测试通过")
except Exception as e:
print("出错啦,错误结果是%s" % e)
print("failed")
raise e
def test_testcase2(self):
print("这是一条测试用例case2")
b = "123"
try:
self.assertTrue(b.isalpha())
print("测试通过")
except Exception as e:
print("出错啦,错误结果是%s" % e)
print("failed")
raise e
def test_testcase3(self):
print("这是一条测试用例case3")
c = " "
try:
self.assertTrue(c.isalpha())
print("测试通过")
except Exception as e:
print("出错啦,错误结果是%s" % e)
print("failed")
raise e
'''
if __name__ == "__main__":
unittest.main()
写上这段代码可以在命令行直接运行model.py,而且用例全部执行
'''
"""
加载测试用例,方法不仅这种,还有利用loader的方法
loader = unittest.TestLoader()
suite.addTest(loader.loadTestsFromTestCase(TestCases))
or
suite.addTest(loader.loadTestsFromModule(model))
"""
suite = unittest.TestSuite()
# suite.addTest("test_testcase2") # 这里我写错了,要加上模块
suite.addTest(TestCases('test_testcase3'))
"""
指定测试报告的路径并且定义报告名称格式
"""
report_dir = "../Test report"
now = time.strftime("%Y-%m-%d %H-%M-%S")
reportname = report_dir + "/" + now + " Test report.html"
"""
运行用例并生成测试报告
"""
with open(reportname, "wb+") as file:
runner = HTMLTestRunner.HTMLTestRunner(file, 2, title="Model test report",
description="Hello testers! This is the description of Model test"
"report")
runner.run(suite)
ユニットテストモジュールの概要:
このモジュールについては、このモジュールは、この2日間は、最終的にはわずかな利益である、それは非常に良いではない、彼の時間の前に学びます。あなたは声明の中に主張しようとすることはできませんし、例外を除いて、クラスに含めることができ、それ以外の場合は、テストケースの結果をアサートすることによって設定することはできません:私は新しい発見をしていた例、。
ルイ江Yunguanのウェブサイトへのリンク:http://www.eflycloud.com/#register?salesID=6DGNUTUAV