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