Сбой TestCase с обнаружением -s, но выполнение по одному показывает ОК - PullRequest
0 голосов
/ 19 декабря 2018

Имеет несколько файлов в папке unit_tests.Запуск TestCase отдельно показывает успешное выполнение тестов.Если я запускаю их с

python -m unittest discover -s unit_tests/*

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

Что может быть причиной такого поведения, что выполнение класса на основе TestCase показывает, что все тесты в порядке, и запуск всех TestCases вместе завершается неудачей.

Обновление статуса

Обнаружена проблема.Поскольку я использовал метапрограммирование для своих классов, я не писал собственную реализацию __del__, чтобы очистить все объекты, относящиеся к классу.Таким образом, Python сохранял ссылки на объект, и в следующий раз, когда экземпляр класса был инициализирован, он запомнил предыдущие значения экземпляра.

1 Ответ

0 голосов
/ 19 декабря 2018

Нашел причину и написал обновление статуса.

Мой класс был такой:

class MyClass:

    items = []

    def append(self, item):
        self.items.append(item)

Когда я добавлял obj в MyClass и затем удалял экземпляр с obj в items он оставался там, когда создавал следующий экземпляр.

class MyClass:

    items = []

    def append(self, item):
        self.items.append(item)

    def __del__(self):
        [self.items.remove(order) for order in self.items]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...