юнит-тестирование python testsuite не вызывает никаких тестовых случаев - PullRequest
0 голосов
/ 24 августа 2018

В настоящее время я хотел бы определить набор тестов для 50 тестовых случаев через Python Test Suite, который включен в модульный тест.

К сожалению, созданный класс отказывается работать должным образом.

Unittest участвует в импорте и работает.

import unittest
import test 
import logging
import random

class SwitchTestComplete(unittest.TestSuite):

def setUp(self):


        self.s = SSH(host='xxx.xx.xx.xxx', username='xxxxx', password='xxx')
        self.s.query_interactive = True
    def suite(self):

       suite = unittest.TestSuite()
       suite.addTest(SwitchTestComplete('test_accounting_disable'))
       suite.addTest(test_account_enable('test_account_enable'))
       #suite.addTest(test_accounting_disable('test_create_user'))
       #suite.addTest(test_accounting_disable('test_delete_user'))
       #suite.addTest(test_accounting_disable('test_delete_admin'))
       #suite.addTest(test_accounting_disable('test_create_user_admin'))
       #suite.addTest(test_accounting_disable('test_auto_logout'))
       self.run(suite)

Тест

def test_create_user(self):
            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)

Проблема, которая возникает, заключается в том, что модульное тестирование выполняется, но не вызывает тестовые случаи, которые яуказал здесь.

1 Ответ

0 голосов
/ 24 августа 2018

В дополнение к комментариям, приведенным выше, приведен простой пример набора.

import unittest 

# your intial test
class Test_User(unittest.TestCase):
    def test_create_user(self):
          # self-filfilling
          assert 1

# make a suite
ts = unittest.TestSuite()

# add new instance to a suite
ts.addTest(Test_User('test_create_user'))

# run suite
runner=unittest.TextTestRunner()
runner.run(ts)

Последующие предложения:

  • не делайте ваш набор классом, это экземпляр
  • , не пытайтесь вводить новые настройки внабор, скорее наследуйте тестовый набор с базовой настройкой, я думаю, что он более чистый
  • (очень субъективный результат) использования pytest - его намного проще и быстрее разработать, чем традиционную библиотеку unittest
...