当前位置:网站首页>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

 Insert picture description here

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()
原网站

版权声明
本文为[qq_ forty-five million five hundred and thirteen thousand nine ]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202130627261183.html