当前位置:网站首页>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()
边栏推荐
- How can I apply for a PMP certificate?
- 2022-07-06 Unity核心9——3D动画
- 硬件大熊原创合集(2022/06更新)
- Panel display technology: LCD and OLED
- Selenium mouse sliding operation event
- How does the project manager write the weekly summary and weekly plan?
- 外部中断实现按键实验
- 【Istio Network CRD VirtualService、Envoyfilter】
- Run can start normally, and debug doesn't start or report an error, which seems to be stuck
- When inputting an expression in the input box, an error is reported: incorrect string value:'\xf0\x9f... ' for column 'XXX' at row 1
猜你喜欢
STM32 clock system
端口复用和重映像
Pytest+request+allure+excel interface automatic construction from 0 to 1 [five nails / flying Book notice]
Locust performance test 4 (custom load Policy)
Do you have any certificates with high gold content?
STM32 serial port register library function configuration method
Why is access to the external network prohibited for internal services of the company?
Register address name mapping
Entity of cesium data visualization (Part 1)
C语言指针(特别篇)
随机推荐
Isomorphic C language
Postman setting environment variables
OpenGL三维图形绘制
硬件大熊原创合集(2022/05更新)
What is the use of PMP certificate?
JVM 内存结构 详细学习笔记(一)
LED模拟与数字调光
Serial port experiment - simple data sending and receiving
【Istio Network CRD VirtualService、Envoyfilter】
MySql数据库-索引-学习笔记
How to pass the PMP Exam in a short time?
2022-06-30 unity core 8 - model import
[chaosblade: node CPU load, node network delay, node network packet loss, node domain name access exception]
Port occupation troubleshooting
Entity of cesium data visualization (Part 1)
面试题:高速PCB一般布局、布线原则
C语言指针(习题篇)
Systick滴答定时器
Several stages of PMP preparation study
Skill review of test engineer before interview