Python Unittest parametrizado baseado em dados

1. Introdução ao parametrizado

Já escrevemos antes

A biblioteca de terceiros Unittest parametrizada é semelhante ao DDT e [email protected] da Unittest, que pode implementar unidade de dados do usuário parametrizada e evitar escrever vários métodos (redundante)

2. Instalação

instalação pip parametrizada

3. Importar

de importação parametrizada parametrizada, param

4. Exemplos

1. Perceba que a adição de dois parâmetros é igual ao terceiro parâmetro. Podemos ver que os parâmetros são passados ​​​​em forma de lista. De acordo com a quantidade de parâmetros, são realizados diferentes tempos de iteração.



from parameterized import parameterized,param
import unittest
import requests
class Test(unittest.TestCase):
    @parameterized.expand([param(1,2,3),param('he','llo','hello')])
    def test(self,test1,test2,test3):
        self.assertEqual((test1+test2),test3)

if __name__ == '__main__':
    unittest.main()

Testing started at 12:36 ...
"C:\Program Files\Python35\python.exe" "C:\Program Files\JetBrains\PyCharm Community Edition 2018.2.4\helpers\pycharm\_jb_unittest_runner.py" --path C:/Users/wangli/PycharmProjects/Test/test/test01.py
Launching unittests with arguments python -m unittest C:/Users/wangli/PycharmProjects/Test/test/test01.py in C:\Users\wangli\PycharmProjects\Test\test


Ran 2 tests in 0.001s

OK

Process finished with exit code 0

2. Podemos implementar a iteração de nossos casos de teste por meio do método acima, montar os parâmetros de solicitação do caso de teste em uma lista e passá-los para @parameterized.expand([parâmetro 1, parâmetro 2, parâmetro 3]) para implementar múltiplas iterações do caso de teste Itere para evitar escrever vários métodos de teste


from parameterized import parameterized,param
import unittest
import requests
class Test(unittest.TestCase):
    @parameterized.expand([param('url','headers','data1'),param('url','headers','data2')])
    def test(self,url,headers,data):
        print(url,headers,data)
        r=requests.post(url=url,headers=headers,json=data)

if __name__ == '__main__':
    unittest.main()

Testing started at 12:46 ...
"C:\Program Files\Python35\python.exe" "C:\Program Files\JetBrains\PyCharm Community Edition 2018.2.4\helpers\pydev\pydevd.py" --multiproc --qt-support=auto --client 127.0.0.1 --port 1145 --file "C:\Program Files\JetBrains\PyCharm Community Edition 2018.2.4\helpers\pycharm\_jb_unittest_runner.py" --path C:/Users/wangli/PycharmProjects/Test/test/test01.py
pydev debugger: process 24756 is connecting

Connected to pydev debugger (build 182.4505.26)
Launching unittests with arguments python -m unittest C:/Users/wangli/PycharmProjects/Test/test/test01.py in C:\Users\wangli\PycharmProjects\Test\test



Ran 2 tests in 0.004s

OK
url headers data1
url headers data2

Process finished with exit code 0

 

Supongo que te gusta

Origin blog.csdn.net/qq_36502272/article/details/103254151
Recomendado
Clasificación