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