Ось мій досвід роботи з MS Test
- Ми проводимо MS Test з приблизно 3800 тесту.
- Тести потребують дуже багато часу, щоб почати виконувати те, що боляче при запуску одиничних тестів.
- Для проведення тестів потрібно близько 1 ГБ пам'яті. Ні, це не пов’язано з витоком пам'яті в наших тестах. Часто ми стикаємося з OutOfMemoryExceptions.
- Оскільки він використовує стільки ресурсів, ми починаємо виконувати тести з batch-файлів. То для чого корисна вся інтеграція?
- Це глючно і нестабільно:
- Наприклад, якщо ви вилучите атрибут [Ignore] з тесту, він не розпізнає його, оскільки він десь кешує інформацію про тести. Вам потрібно оновити список тестів, який іноді вирішує проблему, або перезапустити VS.
- Він випадковим чином не копіює довідкові збірки в каталог theout.
- Елементи розгортання (додаткові файли, які слід використовувати) просто не працюють належним чином. Вони ігноруються випадковим чином.
- У файлах vsmdi та testrunconfig є прихована (не видно в тестовому коді) інформація. Якщо вас це не хвилює, це може не спрацювати.
- Функціонально це може бути порівняно з NUnit, але це дуже дорого, якщо ви вирішите використовувати VS тестер-видання.
Доповнення: Зараз у нас є ще кілька тестів, навіть не можна сказати, скільки. Більше неможливо запустити їх із Visual Studio, через OutOfMemoryExceptions та інших проблем нестабільності. Запускаємо тести зі скриптів. Результати тестів було б легко переглянути в Visual Studio, але коли рішення відкрите, VS виходить з ладу (кожен раз). Тому нам потрібно шукати невдалі тести за допомогою пошуку тексту. Переваги інтегрованого інструменту вже немає.
Ще одне оновлення : зараз ми використовуємо VS 2013. Багато чого змінилося. Вони переписали тестовий бігун MS Test втретє з моменту початку. Це спричинило багато змін, але жодна нова версія не зробила нічого кращого. Ми раді, що ми не використовували модні функції MS Test, оскільки всі вони вже не підтримуються. Це справді соромно. Ми все ще використовуємо скрипти для створення та запуску всіх тестів одиниць, оскільки це зручніше. Visual Studio потребував декількох хвилин для запуску тестів (вимірювання часу після компіляції до початку першого тесту). Вони, ймовірно, виправляють це оновленням, і це може бути специфічною проблемою нашого проекту. Однак Resharper набагато швидше під час виконання тих же тестів.
Висновок : принаймні в поєднанні з Resharper, MS Test корисний. І я сподіваюся, що вони нарешті дізнаються, як слід записати тестовий бігун, і не зроблять подібних змін, коли ми оновлюємо Visual Studio наступного разу.