当前位置:网站首页>Unittest simple project
Unittest simple project
2022-07-07 09:14:00 【qq_ forty-five million five hundred and thirteen thousand nine 】
1. Business module
""" file name :calc.py"""
class Calc1:
def __init__(self, a, b):
self.a = a
self.b = b
def multiply(self):
x = self.a * self.b
return x
def division(self):
y = round(self.a / self.b, 2)
return y
if __name__ == '__main__':
print(Calc1(3,7).multiply())
print(Calc1(3,7).division())
2. unit testing
""" file name :testdiv.py"""
import unittest
from calc import *
class TestDiv(unittest.TestCase):
@classmethod
def setUpClass(cls):
print(" Preparation of all use cases ")
def setUp(self):
print('~' * 10, ' Beginning of the test ', '~' * 10)
def tearDown(self):
print('-' * 10, ' End of test ', '-' * 10)
@classmethod
def tearDownClass(cls):
print(" The closeout of all use cases ")
def test_div1(self):
print("1.2. Multiplication verification ")
self.assertEqual(30, Calc1(7, 5).multiply(), msg="testdiv Multiplication verification error ")
def test_div2(self):
print("2.2. Division verification ")
self.assertEqual(1.4, Calc1(7, 5).division(), msg="##")
if __name__ == '__main__':
unittest.main()
""" file name :testmul.py"""
import unittest
from calc import *
class TestMul(unittest.TestCase):
def setUp(self):
print('~' * 10, ' Beginning of the test ', '~' * 10)
def tearDown(self):
print('-' * 10, ' End of test ', '-' * 10)
def test_mul1(self):
print("1.1. Multiplication verification ")
self.assertEqual(100, Calc1(25, 4).multiply(), msg="##")
def test_mul2(self):
print("2.1. Division verification ")
self.assertEqual(6.0, Calc1(25, 4).division(), msg="testmul Division validation error ")
if __name__ == '__main__':
unittest.main()
3. Test the actuator
""" file name :runtest1.py"""
"""【 Purpose 】 Merge multiple classes ---> Test Suite """
import unittest
from testmul import TestMul
from testdiv import TestDiv
# HTMLTestRunner External import required
import HTMLTestRunner
if __name__ == '__main__':
"""【1. Different classes are written into their respective test suites 】"""
testsuite_1 = unittest.TestLoader().loadTestsFromTestCase(TestMul)
testsuite_2 = unittest.TestLoader().loadTestsFromTestCase(TestDiv)
"""【2. Multiple test suites are combined into a large test suite 】"""
testsuite_all = unittest.TestSuite([testsuite_1, testsuite_2])
"""【3. The name of the test report 】 Write binary """
html1 = open('testreport.html', 'wb')
htmlrunner = HTMLTestRunner.HTMLTestRunner(stream=html1, title=' Multiplication and division test report ')
"""【4. Actuator execution test suite 】"""
htmlrunner.run(testsuite_all)
html1.close()
""" file name :runtest2.py"""
"""【 Purpose 】 Merge multiple module files in the specified directory ---> Test Suite """
import unittest
if __name__ == '__main__':
"""【1】 Declare the location of the directory """
test_dir = "./"
"""【2】 Find the directory with 'test' The first module file """
test_file = "test*.py"
"""【3】 Merge multiple module files into a test suite """
test_suite = unittest.defaultTestLoader.discover(test_dir, pattern=test_file)
"""【4】 Actuator execution test suite """
test_run1 = unittest.TextTestRunner()
test_run1.run(test_suite)
Run the actuator
1. menu bar : function ---> function
2. Terminal command line :
python file .py
python3 file .py
Test report
Templates
import unittest
class TestSample(unittest.TestCase):
def setUp(self) :# preparation , Each use case executes
print("~~~~~~~ Start testing ~~~~~~~")
def tearDown(self):# Finishing work , Each use case executes
print("------ End of test ------")
def test_1(self):# The test case is based on test_ Lead
self.assert(" Expected value "," class ( Parameters 1, Parameters 2). Method ()",msg=" Show... On failure ")
def test_2(self):# The test case is based on test_ Lead
self.assert(" Expected value "," class ( Parameters 1, Parameters 2). Method ()",msg=" Show... On failure ")
if __name__ == '__main__':# Test the actuator
unittest.main()
边栏推荐
- Pycharm importing third-party libraries
- Vagrant failed to mount directory mount: unknown filesystem type 'vboxsf'
- Reflections on the way of enterprise IT architecture transformation (Alibaba's China Taiwan strategic thought and architecture practice)
- Postman data driven
- Postman interface test (I. installation and use)
- 2020 year end summary
- Port multiplexing and re imaging
- Several methods of calculating the average value of two numbers
- What are the conditions for applying for NPDP?
- MySql数据库-事务-学习笔记
猜你喜欢
随机推荐
PMP Exam details after the release of the new exam outline
Troublesome problem of image resizing when using typora to edit markdown to upload CSDN
Output a spiral matrix C language
Goldbach conjecture C language
数据在内存中的存储
Several methods of calculating the average value of two numbers
Why is access to the external network prohibited for internal services of the company?
C语言指针(中篇)
Calculation s=1+12+123+1234+12345 C language
What is the value of getting a PMP certificate?
Skill review of test engineer before interview
Self awakening from a 30-year-old female programmer
JVM garbage collection detailed learning notes (II)
LED模拟与数字调光
The essence of high availability
Confitest of fixture py
Panel display technology: LCD and OLED
Several stages of PMP preparation study
2022-06-30 Unity核心8——模型导入
【Istio Network CRD VirtualService、Envoyfilter】