Галлио Икар против Testdriven.net
Каковы различия между использованием интегрированного инструмента VS, такого как Testdriven.net, и использованием бегунка GUI, такого как Icarus или NUnit GUI?
Что вы предпочитаете и почему?
До сих пор я обнаружил, что отчеты лучше в Icarus, чем в td.net, который имеет только вывод командной строки. Несмотря на то, что td.net быстрее в использовании, я могу выполнять одиночные тесты без необходимости сначала снимать отметку с остальных. Интеграция с NCover тоже очень хорошая.
2 ответа
У Icarus есть одна замечательная особенность, которая заставляет меня использовать его. Это автоматическая перезагрузка и повторный запуск тестов.
Я держу Икара на левом мониторе. Каждый раз, когда я собираюсь в Visual Studio, Icarus перезагружает сборки и запускает все тесты. Это как мгновенная обратная связь с Resharper's Solution Analysis, за исключением тестов вместо синтаксиса. Выполнение тестов происходит автоматически и, по-видимому, не влияет на производительность Visual Studio (вероятно, b/c Icarus - это собственный процесс, не размещенный внутри IDE).
Чтобы включить эту конфигурацию, перейдите в Icarus->Options->Test Explorer. Установите флажки "Всегда перезагружать файлы" и "Запускать тесты после перезагрузки".
Есть ли у вас сервер непрерывной интеграции (например, сервер сборки, но запускает модульные тесты)?
Если это так, вы можете настроить gallio для запуска своих модульных тестов и иметь всю отчетную информацию, позволяя разработчикам использовать что-то с более быстрой обратной связью во время работы.
Если нет выбора, я предпочитаю что-то, что интегрировано в IDE, например Testdrvien. Немедленная обратная связь очень полезна при рефакторинге фрагмента кода или разработке чего-то нового под TDD. Кроме того, если у вас нет проверки работоспособности в одной точке (например, на сервере CI), вам понадобится столько глаз, сколько вы можете найти в этих модульных тестах. Разработчики, как правило, используют все, что проще, и, как правило, интегрированный набор тестов проще, чем отдельный компонент.