Heim > Datenbank > MySQL-Tutorial > Hauptteil

So führen Sie automatisierte Unit-Tests mit Python Unittest durch

php中世界最好的语言
Freigeben: 2018-04-09 17:53:44
Original
3340 Leute haben es durchsucht

Dieses Mal werde ich Ihnen Python vorstellen. Wie man Unittest Unit-Tests automatisiert, welche Vorsichtsmaßnahmen es für Python Unittest gibt, um Unit-Tests zu automatisieren, das Folgende ist Werfen wir einen Blick auf praktische Fälle.

Das Beispiel in diesem Artikel teilt den spezifischen Code des automatisierten Unittest-Frameworks von Python als Referenz. Der spezifische Inhalt lautet wie folgt:

1 >Dieser Artikel behandelt nur PyUnit)

Referenzadresse

2. Umgebungsvorbereitung

Stellen Sie zunächst sicher, dass Python installiert ist, und installieren Sie dann PyUnit. Die Python-Version ist relativ neu in PyUnit integriert (PyUnit bietet eine grafische Testoberfläche UnittestGUI.py)


3. Codebeispiele

Die verwendete IDE ist PyCharm. Die DEMO-Struktur ist wie in der Abbildung dargestellt

1 Eine einfache Instanz

2 In Fällen können Sie Suite verwenden, um mehrere Fälle zu verwalten. Suite kann als Fallcontainer betrachtet werden, der viele Fälle enthalten kann
# 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()
Nach dem Login kopieren

3.Suite und Case können separat in verschiedene Python-Dateien geschrieben werden erleichtert die Unterscheidung zwischen dem Fallmodul und dem Suite-Verwaltungsmodul. Beim Testen müssen Sie nur den Fall im Fallmodul hinzufügen und ihn dann zum Suite-Modul
# 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')
Nach dem Login kopieren

Fallmodul

hinzufügen

Die nächsten sind drei Suite-Module. Importieren Sie zuerst das Case-Modul, fügen Sie dann Suite hinzu und fügen Sie dann Case in Suite hinzu. Zum Schluss müssen Sie TestRunner bei der Ausführung verwenden
# 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'
Nach dem Login kopieren

Einfach TestSuite:

Sie können Case auch direkt in der Hauptmethode hinzufügen, ohne die Suite-Methode zu definieren, und dann
# 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())
Nach dem Login kopieren

ausführen, um verschiedene Cases zu verschiedenen Suites hinzuzufügen. Sie können Suite
# 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)
Nach dem Login kopieren

zur Unterscheidung verschiedener Fälle verwenden, und Suiten können auch

4. Zusammenfassung
# 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())
Nach dem Login kopieren

PyUnit ist ein Unit-Test-Framework für Python ist bequem zu verwenden.

In Python wird jede Methode als Anwendungsfall betrachtet und kann als Fall betrachtet werden. Hier stellen wir die Verwendung von Suite zum Verwalten von Fällen vor und führen Sie es in Gruppen aus. Weitere interessante Informationen finden Sie unter: unittest – Unit-Testing-Framework


Ich glaube, Sie haben die Methode beherrscht Achten Sie auf andere verwandte Artikel auf der chinesischen PHP-Website!

Empfohlene Lektüre:

Detaillierte Erläuterung der Schritte zur Verwendung der Unittest-Testschnittstelle in Python


So zählen Sie die Zahl von Buchstaben, die in Python vorkommen

Das obige ist der detaillierte Inhalt vonSo führen Sie automatisierte Unit-Tests mit Python Unittest durch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage