Я погружаюсь глубже и глубже в мир модульных испытаний.
Одна из проблем, с которой я столкнулся, и это то, где я бы хотел получить обратную связь, - это когда вы запускаете несколько тестовых наборов, возможно, это только я, но мне нужно использовать параметр -process-isolation для моих тестов. Я могу запускать любой из своих наборов индивидуально без проблем, но выполнение 6-7 наборов, которые у меня есть до сих пор, с 180 утверждениями, которые распространяются между ними, терпит неудачу, если я запускаю без изоляции процесса. Проблема заключается в том, что использование этого параметра делает тестовый прогон длительностью 35 минут против обычных 2,5 минут. Это ожидание ожидания.
Проблема связана с использованием израсходованных контейнеров DI для конкретных тестов и контейнеров, которые неправильно переинициализируются при запуске наборов тестов. Статические свойства, установленные для DI-Container для проверки ожидаемых отказов, делают тесты в следующем пакете неудачными. Контейнер имеет параметр, который может содержать содержащийся объект в статическом var, чтобы возвращать один и тот же экземпляр при каждом вызове. Одиночный сингл. И это отлично работает на уровне приложений, это просто неприятность для тестирования.
Я мог бы избежать этого параметра контейнера и закодировать приложение, чтобы оно не использовало статические свойства, но избегать полезной языковой конструкции для методологии кажется излишним.
Возможно, я делаю что-то неправильно (я надеюсь, что так!), но у меня сложилось впечатление, что если вы хотите запускать тесты с SUT в чистом состоянии для каждого теста, не обойтись без использования --process-изоляции. Это делает тестирование очень трудоемким и немного отвлекает от него радость. Я несколько обошел проблему, выполняя отдельные классы и тесты, когда я кодирую, и запускаю пакет в фоновом режиме до крупных коммитов.
Это то, что я испытываю в обычном режиме, и есть ли способ противостоять этому? Как вы, тестирующие, убедитесь, что время тестирования разумно? Как обрабатывается статика, чтобы не влиять на тестирование?
Любое понимание, оцененное/комментарий, оценено.