Pythonのシリーズの知人のユニットテスト

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日間は、最終的にはわずかな利益である、それは非常に良いではない、彼の時間の前に学びます。あなたは声明の中に主張しようとすることはできませんし、例外を除いて、クラスに含めることができ、それ以外の場合は、テストケースの結果をアサートすることによって設定することはできません:私は新しい発見をしていた例、。
Pythonのシリーズの知人のユニットテスト

ルイ江Yunguanのウェブサイトへのリンク:http://www.eflycloud.com/#register?salesID=6DGNUTUAV

おすすめ

転載: blog.51cto.com/13475644/2429070