ホームページ > データベース > mysql チュートリアル > Python Unittest を使用して自動単体テストを実行する方法

Python Unittest を使用して自動単体テストを実行する方法

php中世界最好的语言
リリース: 2018-04-09 17:53:44
オリジナル
3366 人が閲覧しました

今回は、Python Unittest を自動化する方法 単体テスト と、単体テストを自動化するための Python Unittest の 注意事項 について、実際の事例を紹介します。

この記事の例では、参考のために Python Unittest 自動単体テスト フレームワークの具体的なコードを共有します。具体的な内容は次のとおりです

1. Python テスト フレームワーク (この記事には PyUnit のみが含まれます)

参考アドレス

2. 環境の準備

まず Python がインストールされていることを確認してから、PyUnit をインストールします (PyUnit はグラフィカル テスト インターフェイス UnittestGUI.py を提供します)
参考: アドレスを表示

3.

使用したIDEはPyCharmです

1の簡単な例です

# Test002_Fail.py
# -*- coding:utf-8 -*-
import unittest
class Test002_Fail(unittest.TestCase):
  #测试用例前执行
  def setUp(self):
    print 'Case Before'
    pass
  #测试用例后执行
  def tearDown(self):
    print 'Case After'
    pass
  #测试用例1
  def test_Case1(self):
    a = 3
    b = 2
    self.assertEqual(a+b,4,'Result Fail')
  #测试用例2
  def test_Case2(self):
    a = 2
    b = 3
    self.assertEqual(a*b,7,'Result Fail')
if name == 'main':
  unittest.main()
ログイン後にコピー

2. 複数のケースを管理するにはSuiteを使用します。ケースコンテナは多くのケースを保持できます

# SuiteDemo.py
# -*- coding:utf-8 -*-
#一个类,添加测试集
import unittest
class SuiteDemo(unittest.TestCase):
  #测试用例前执行
  def setUp(self):
    print 'Case Before'
    pass
  #测试用例后执行
  def tearDown(self):
    print 'Case After'
    pass
  def test_Case1(self):
    a = 3
    b = 2
    self.assertEqual(a+b,5,'Result Fail')
    print 'Case1'
  def test_Case2(self):
    a = 2
    b = 3
    self.assertEqual(a*b,6,'Result Fail')
    print 'Case2'
#定义一个测试集合,方便添加Case
def suite():
  suiteTest = unittest.TestSuite()
  suiteTest.addTest(SuiteDemo("test_Case1"))
  suiteTest.addTest(SuiteDemo("test_Case2"))
  return suiteTest
#默认运行时通过 Suite 运行
if name == 'main':
  unittest.main(defaultTest='suite')
ログイン後にコピー

3.スイートとケースは別々の Python ファイルで記述できるため、テスト時にケース モジュールとスイート管理モジュールを簡単に区別できます。 case モジュールに case を追加し、それを Suite モジュールに追加します

case モジュール

# TestCaseDemo
# -*- coding:utf-8 -*-
import unittest
class TestCaseDemo(unittest.TestCase):
  def setUp(self):
    pass
  def tearDown(self):
    pass
  def test_Case1(self):
    print 'test_Case1'
  def test_Case2(self):
    print 'test_Case2'
  def test_Case3(self):
    print 'test_Case3'
  def test_Case4(self):
    print 'test_Case4'
ログイン後にコピー

次は 3 つの Suite モジュールで、最初に Case モジュールをインポートし、次に Suite を追加してから、Case をSuite を作成し、最後に実行時に TestRunner を使用します。この TestRunner は Suite のエグゼキューターに相当します

Simple TestSuite:

# TestCase_Demo1.py
# -*- coding:utf-8 -*-
#集合写入一个方法,main调用并启动
import unittest
from TestCase_Demo import TestCaseDemo
#添加一个测试集合,并添加Case
def suite():
  suiteTest = unittest.TestSuite()
  suiteTest.addTest(TestCaseDemo('test_Case1'))
  return suiteTest
#指定并启动测试集合,运行集合方法
if name == 'main':
  runner = unittest.TextTestRunner()
  runner.run(suite())
ログイン後にコピー

Suite メソッドを定義せずに直接 main メソッドに Case を追加して実行することもできます

# TestCase_Demo2.py
# -*- coding:utf-8 -*-
#集合可以写在main
import unittest
from TestCase_Demo import TestCaseDemo
#指定并启动测试集合
if name == 'main':
  #添加测试集合Case,并启动
  suiteTest = unittest.TestSuite()
  suiteTest.addTest(TestCaseDemo('test_Case1'))
  suiteTest.addTest(TestCaseDemo('test_Case2'))
  #直接启动集合
  runner = unittest.TextTestRunner()
  runner.run(suiteTest)
ログイン後にコピー

異なる Case を異なる Suite に追加します。同様に、Suite をグループ化して異なる Case を区別することもできます。また、Suite には

# TestCase_Demo3.py
# -*- coding:utf-8 -*-
#包含集合,多集合
import unittest
from TestCase_Demo import TestCaseDemo
#添加不同的合集
def Suite1():
  suiteTest = unittest.TestSuite()
  suiteTest.addTest(TestCaseDemo("test_Case1"))
  suiteTest.addTest(TestCaseDemo("test_Case2"))
  print 'Suite1 运行'
  return suiteTest
def Suite2():
  suiteTest = unittest.TestSuite()
  suiteTest.addTest(TestCaseDemo("test_Case3"))
  suiteTest.addTest(TestCaseDemo("test_Case4"))
  print 'Suite2 运行'
  return suiteTest
#包含所有的Suite
def AllSuite():
  allTest = unittest.TestSuite((Suite1(),Suite2()))
  return allTest
#运行的时候,可以根据不同的要求,运行不同的Suite,或者全部运行,这样就方便管理每次运行的case
if name == 'main':
  runner = unittest.TextTestRunner()
  runner.run(AllSuite())
ログイン後にコピー
4 を含めることもできます。 Python では、メソッド名が test_ で始まるすべてのメソッドがケースとみなされます。ここでは、Suite を使用して Case を管理する方法と、Case をグループで実行する方法について説明します。その他多くの関数については、unittest — 単体テスト フレームワークを参照してください。この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、PHP 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:


Pythonでunittestテストインターフェイスを使用する手順の詳細な説明

Pythonはどのように文字の出現回数をカウントしますか

以上がPython Unittest を使用して自動単体テストを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート