当前位置:网站首页>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()
边栏推荐
- Simulation volume leetcode [general] 1557 The minimum number of points that can reach all points
- C language pointer (Part 1)
- Ppt template and material download website (pure dry goods, recommended Collection)
- OpenGL帧缓冲
- Locust performance test 4 (custom load Policy)
- LED模拟与数字调光
- PMP Exam details after the release of the new exam outline
- How to pass the PMP Exam in a short time?
- Systick滴答定时器
- Goldbach conjecture C language
猜你喜欢

Cesium does not support 4490 problem solution and cesium modified source code packaging scheme

串口实验——简单数据收发

PMP Exam Preparation experience systematically improve project management knowledge through learning

Postman interface test (II. Set global variables \ sets)

外部中断实现按键实验

Panel display technology: LCD and OLED

Serial port experiment - simple data sending and receiving

寄存器地址名映射

Systick tick timer

C语言指针(下篇)
随机推荐
E-commerce campaign Guide
Implementation of corner badge of Youmeng message push
Count the number of words C language
Two schemes of unit test
【ChaosBlade:节点 CPU 负载、节点网络延迟、节点网络丢包、节点域名访问异常】
数据在内存中的存储
Idea development environment installation
Record of structured interview
Simulation volume leetcode [general] 1706 Where does the ball meet
Upgrade Alibaba cloud RDS (relational database service) instance to com mysql. jdbc. exceptions. Troubleshooting of jdbc4.communicationsexception
【ChaosBlade:根据标签删除POD、Pod 域名访问异常场景、Pod 文件系统 I/O 故障场景】
Golang etcdv3 reports an error. The attribute in grpc does not exist
[chaosblade: delete pod according to the tag, pod domain name access exception scenario, pod file system i/o failure scenario]
Mysql数据库-锁-学习笔记
What is the use of PMP certificate?
[chaosblade: node disk filling, killing the specified process on the node, suspending the specified process on the node]
MySQL common statements
Personal deduction topic classification record
Screen automatically generates database documents
Leetcode question brushing record (array) combination sum, combination sum II