Python: от Unitest (lib) до pytest.Move без проблем возможно? - PullRequest
0 голосов
/ 30 августа 2018

Задача

Мне нужно сменить некоторые из моих тестов с unittest (library) на Pytest, к сожалению, я имею дело с объемом тестов, которые я здесь, чтобы решить, что я не могу взять на себя все функции, поэтому. С исследованиями впереди я просто не могу ужиться.

Моя настройка относится к тестам, которые тестируют функциональность коммутатора на основе интерфейса командной строки.

  1. Войдите на коммутатор с SSH и Pyserial
  2. Выполнение запросов в среде приглашения
  3. После завершения теста процесс теста должен быть записан в текстовом файле

Спросите:

  1. Могу ли я использовать источник, который я сейчас использую, так синоним Pytest?
  2. Что мне нужно перестроить, чтобы я мог продолжать использовать основные компоненты (см. Выше)?
  3. Где есть хорошие примеры Pytest и Router / Switch Test? Насколько проблематичным является комплексное ремоделирование нескольких 1000 тестовых случаев?
  4. Очень важным моментом также будет то, что у меня есть набор тестов в другом тесте? Как реализовать существующий набор тестов в Pytest?

настройка:

Python 3.7, Unittest

import unittest
from test import support
import paramiko

Здесь я использую этот класс

class SwitchAccount(unittest.TestCase):  # This class inherits unittest.TestCase

Подключение к коммутатору

def setUp(self):
    self.s = testcore.control.ssh.SSH(host='xxx.xx.xxx.250', username='admin', password='admin')

    self.s.query_interactive = True

Первый тест на коммутаторе

def test_change_Enforce_Enable(self):

    if self.s.login():
        q = self.s.query('account')

        # switch to prompt account

        q = self.s.query('enforce-Password-Rules yes')

Здесь я запускаю тестовый костюм

    # intial test
    # class Test_User(unittest.TestCase):



def test_create_user(self):

    # self-filfilling
    assert 1

    if self.s.login():
        q = self.s.query('account')

        # switch to prompt account

        q = self.s.query('add 10 testuser1 testuser1 ')
        q = self.s.query('add 11 testuser2 testuser2 ')
        q = self.s.query('add 11 testuser3 testuser3 ')
        q = self.s.query('add 11 testuser4 testuser4 ')
        q = self.s.query('add 11 testuser5 testuser5 ')
        q = self.s.query('add 11 testuser6 testuser6 ')
        q = self.s.query('add 11 testuser7 testuser7 ')
        q = self.s.query('add 11 testuser8 testuser8 ')
        q = self.s.query('add 11 testuser9 testuser9 ')
        q = self.s.query('add 11 testuser10 testuser10 ')

        import time
        print('Wait')
        time.sleep(3)

        # create testadmins privileg 15

        q = self.s.query('add 15 testadmin1 testadmin1 ')
        q = self.s.query('add 15 testadmin2 testadmin2 ')
        q = self.s.query('add 15 testadmin3 testadmin3 ')
        q = self.s.query('add 15 testadmin4 testadmin4 ')
        q = self.s.query('add 15 testadmin5 testadmin5 ')
        import time
        print('Wait')
        time.sleep(3)

        # more testadmins

        q = self.s.query('add 15 testadmin1 testadmin6 ')
        q = self.s.query('add 15 testadmin2 testadmin7 ')
        q = self.s.query('add 15 testadmin3 testadmin8 ')
        q = self.s.query('add 15 testadmin4 testadmin9 ')
        q = self.s.query('add 15 testadmin1 testadmin11 ')
        q = self.s.query('add 15 testadmin2 testadmin12 ')
        q = self.s.query('add 15 testadmin3 testadmin13 ')
        q = self.s.query('add 15 testadmin4 testadmin14 ')
        q = self.s.query('add 15 testadmin5 testadmin15 ')
        import time
        print('Wait')
        time.sleep(10)

def test_delete_user(self):

    if self.s.login():
        q = self.s.query('account')
        q = self.s.query('delete testuser1 ')
        q = self.s.query('delete testuser2 ')
        q = self.s.query('delete testuser3 ')
        q = self.s.query('delete testuser4 ')
        q = self.s.query('delete testuser5 ')
        q = self.s.query('delete testuser6 ')
        q = self.s.query('delete testuser7 ')
        q = self.s.query('delete testuser8 ')
        q = self.s.query('delete testuser9 ')
        q = self.s.query('delete testuser10 ')
        import time
        print('Wait')
        time.sleep(10)

        # create testadmins privileg 15

        q = self.s.query('delete testadmin1 ')
        q = self.s.query('delete testadmin2 ')
        q = self.s.query('delete testadmin3 ')
        q = self.s.query('delete testadmin4 ')
        q = self.s.query('delete testadmin5 ')
        import time
        print('Wait')
        time.sleep(10)


    # def test_user_password(self):

    # if self.s.login():

    # q = self.s.query('add 15 ß ß')
    # import time
    # print('Wait')
    # time.sleep(3)
    # print('it´s not possible ')


def test_creat_user_nopassword(self):

    if self.s.login():
        q = self.s.query('add 15 Testusernopassword ')
        import time
        print('Wait')
        time.sleep(3)
        print('it´s not possible to create a user admin')


def test_creat_admin(self):

    if self.s.login():
        q = self.s.query('add 15 admin admin')
        print('it´s not possible to create a user admin')
        import time
        print('Wait')
        time.sleep(3)


def test_split(self):
    # code here
    pass

def tearDown(self):
    # your code to clean or close the connection
    pass


if __name__ == '__main__':
    unittest.main(verbosity=3)
    unittest.main(warnings='ignore')
    log_file = 'log_file.txt'
    f = open(log_file, "w")
    runner = unittest.TextTestRunner()
    runner.run(suite())
...