Вот мой опыт с MS Test
- Мы проводим тест MS с примерно 3800 тестами.
- Для начала выполнения тестов требуется очень много времени, что болезненно при запуске отдельных тестов.
- Для выполнения тестов требуется около 1 ГБ памяти. Нет, это не из-за утечек памяти в наших тестах. Часто мы сталкиваемся с OutOfMemoryExceptions.
- Поскольку он использует столько ресурсов, мы начинаем выполнять тесты из пакетных файлов. Так для чего вся интеграция хороша?
- Он глючит и нестабилен:
- Например, если вы удалите атрибут [Ignore] из теста, он не распознает его, потому что он где-то кэширует информацию о тестах. Вам необходимо обновить список тестов, который иногда решает проблему, или перезапустить VS.
- Он случайно не копирует ссылочные сборки в каталог out.
- Элементы развертывания (дополнительные файлы для использования) просто не работают должным образом. Они игнорируются случайным образом.
- В файлах vsmdi и testrunconfig есть скрытая (не видимая в тестовом коде) информация. Если вас это не волнует, это может не сработать.
- Функционально это может быть сравнимо с NUnit, но это очень дорого, если вы планируете использовать VS Tester Edition.
Добавление: У нас есть еще несколько тестов, даже не могу сказать, сколько. Больше невозможно запускать их из Visual Studio из-за исключений OutOfMemoryException и других проблем с нестабильностью. Мы запускаем тесты из скриптов. Было бы легко просмотреть результаты теста в Visual Studio, но когда решение открыто, VS дает сбой (каждый раз). Таким образом, мы должны искать неудачные тесты, используя текстовый поиск. Преимущества встроенного инструмента больше нет.
Другое обновление : Сейчас мы используем VS 2013. Многое изменилось. Они переписали тестовый тест MS Test в третий раз с тех пор, как мы начали. Это вызвало много серьезных изменений, но ни одна новая версия не делала ничего лучше. Мы рады, что не использовали необычные функции MS Test, потому что все они больше не поддерживаются. Это действительно позор. Мы все еще используем скрипты для сборки и запуска всех модульных тестов, потому что это удобнее. Visual Studio потребовалось несколько минут для запуска тестов (время измеряется после компиляции до начала первого теста). Вероятно, они исправляют это с помощью обновления, и это может быть специфической проблемой нашего проекта. Тем не менее, Resharper намного быстрее при выполнении тех же тестов.
Вывод : по крайней мере в сочетании с Resharper, MS Test полезен. И я надеюсь, что они, наконец, узнают, как должен быть написан исполнитель тестов, и не сделают такого рода критических изменений, когда мы обновим Visual Studio в следующий раз.