Понимание удаления и сброса тестов в наборе тестов Unittest PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Понимание удаления и сброса тестов в наборе тестов Unittest Python

Сообщение Anonymous »

Я заметил странное поведение при установке пустого атрибута _tests набора тестов, а затем при попытке снова добавить к нему тесты в рамках цикла.
По сути, мне приходится повторно инициализировать содержимое набора тестов в рамках циклического запуска всего набора тестов. Я обнаружил, что не могу просто повторно вызывать один и тот же набор тестов, итеративно, поэтому я повторно инициализирую его.
Прежде чем войти в цикл, у меня есть список тестов my_tests код>.

Код: Выделить всё

runner = unittest.TextTestRunner()
my_suite = unittest.TestSuite(my_tests)
for i in range(2):
result = runner.run(my_suite)

print(f"{i} Number of tests, after running tests: suite suite length {my_suite.countTestCases()} test object     {my_tests}")

unittest.registerResult(result)
# Empty test suite and re-add tests
my_suite._tests = []

print(my_suite.__dict__)

my_suite.addTests(my_tests)
print(my_suite.__dict__)

print(f"{i} Number of tests, after reinitialising suite: suite length {my_suite.countTestCases()} test object {my_tests}")

и я получаю следующий результат

Код: Выделить всё

----------------------------------------------------------------------
Ran 1 test in 0.000s

OK
0 Number of tests, after running tests: suite length 1 test object []
{'_tests': [], '_removed_tests': 1}
{'_tests': [], '_removed_tests': 1}

0 Number of tests, after reinitilising suite:suite length 2 test object []

.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK
1 Number of tests, after running tests: suite length 2 test object []
{'_tests': [], '_removed_tests': 2}
{'_tests': [], '_removed_tests': 2}
1 Number of tests, after reinitilising suite:suite length 3 test object []
поэтому количество тестов в наборе тестов фактически увеличивается с каждой итерацией, несмотря на то, что список установлен на пустой список. видно в длине пакета 1 -> длина пакета 2 -> длина пакета 3
Я попытался и преуспел в решении этой проблемы с помощью следующего:< /p>
Я добавил:

Код: Выделить всё

my_suite.removed_tests = 0
а затем обнаружил, что заявленная длина пакета оставалась равной 1 на протяжении всех итераций.
Я действительно просто не понимаю, почему Remove_test count повлияет на поведение добавления тестов в набор, который, как сообщается, пуст?

Подробнее здесь: https://stackoverflow.com/questions/790 ... test-suite
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»