Есть ли какая-нибудь "продвинутая" среда тестирования для .NET? - PullRequest
4 голосов
/ 25 августа 2010

Я ищу среду тестирования, которая позволяет мне иметь:

  1. Различные виды (категории) тестов. Я хочу иметь возможность просто запускать все "быстрые" тесты или все "медленные" тесты. Я знаю, что MSTest позволяет создавать списки и запускать, а затем запускать их, но я нахожу это раздражающим и отвлекающим. Я хотел бы просто пометить тесты атрибутами при их разработке, а затем просто добавить что-то вроде комбинированного списка, который позволит мне выбрать, какие тесты я хочу выполнить. Я также знаю, что если у меня есть более медленные тесты, я могу отсортировать их с помощью MSTest, чтобы я мог видеть, когда более быстрые тесты закончились. Это, конечно, всего лишь «взлом», и, поскольку у вас все больше и больше тестов, он получает полный беспорядок.
  2. Запускать тесты последовательно. Когда я говорю последовательно, я не имею в виду, что они зависят друг от друга, я просто имею в виду, что, поскольку я должен тестировать графический интерфейс, у меня не может быть 2 тестов, работающих на в то же время.
  3. Возможность иметь несколько тестов, зависящих друг от друга. Это означает, что если у меня есть тест A, который не проходит, в некоторых ситуациях я бы даже не хотел запускать тесты B или C.
  4. Иметь некоторую поддержку в Visual Studio для всего этого. В настоящее время я всегда делаю CTRL + B / CTRL + R, A (тесты сборки / запуска). Таким образом, необходимость ходить и смотреть на другое приложение (даже если оно запущено из VS IDE) каждые 2 минуты не похоже на хорошее решение.

Есть ли что-нибудь, что способно достичь этого? Я нахожу неловким, что при всей этой тенденции, связанной с тестированием и тддом, инструменты в нашем распоряжении все еще такие примитивные и необработанные.

Ответы [ 6 ]

4 голосов
/ 25 августа 2010

MbUnit

  • Категории : у вас есть атрибут [Категория]
  • Последовательно: большинство тестовых исполнителей делают это по умолчанию.
  • Зависимости теста : у вас есть атрибут [DependsOn]
  • VSподдержка : через Gallio , TestDriven.Net или ReSharper .
3 голосов
/ 25 августа 2010

Модульное тестирование VS выполняет 1, 2 и 4.

Различные виды (категории) тестов.

Вы можете создать несколько списков тестов, добавив несколько тестов«Параметры», каждый из которых может запускать разные конфигурации или разные поднаборы ваших тестов.

Запускать тесты последовательно.

ВЫ можете контролировать уровень используемого параллелизма, включая установку его на 1. (Это требует редактирования файла XML, но рассматривается в MSDN).

Естькакая-то поддержка в Visual Studio для всего этого.I

Это просто.

Возможность иметь несколько тестов зависит друг от друга.

Это сложный вопрос, так как TDD рекомендует, чтобы тесты были независимыми инструментами.

Внутри одного класса тестов сохраняйте флаги и немедленно выходите из тестов, где условияне был встречен.

1 голос
/ 27 августа 2010

NUnit

  1. Категории - вы можете пометить тестовое устройство как [Category ("SomeName")], а затем использовать имена категорий, чтобы включить / исключить их из тестового прогона
  2. Последовательный - это значение по умолчанию для большинства платформ xUnit.Работает из коробки
  3. Тест-зависимости: посмотрите на этот вопрос для получения дополнительной информации - Тесты, зависящие от часто используемых функций с NUnit .В настоящее время не поддерживается в NUnit - но посмотрите на комментарии, чтобы увидеть, работают ли какие-либо обходные пути для вас
  4. VS Integration - это дано для MS-Test по очевидным причинам.Для NUnit вам потребуется установить некоторые плагины, например, я использую Resharper 5.1 (платный)
1 голос
/ 25 августа 2010

Использование MSTest (некоторые параметры помогают, если другие не работают)

Вы можете иметь TestCategories (используя атрибут TestCategory), а затем использовать фильтры в верхней части редактора списка тестов, чтобы выбратьчто вы хотите.

Вы также можете создать упорядоченные списки тестов, щелкнув правой кнопкой мыши проект / папку, щелкнув новый тест вверху, и это один из вариантов.Затем вы добавляете и упорядочиваете тесты в пакете, и он будет запускать их последовательно и, при необходимости, при неудачном завершении остальных, если один из последовательности не удастся выполнить.установить параллелизм на 1, но я сам этого не сделал.

1 голос
/ 25 августа 2010

Вы должны использовать Gallio , если у вас есть резарпер.
Он поддерживает любую структуру, которую вы можете выбрать.
Это очень поможет вашей производительности.

0 голосов
/ 27 августа 2010

Использование MSTest

Для 1: Различные виды (категории) испытаний

Если у вас есть ReSharper, вы можете группировать тесты на основе TestCategory при их запуске. (очень рекомендую ReSharper, если у вас его нет. Вы можете использовать его бесплатно в течение 30 дней, чтобы попробовать).

Если вы не используете атрибут [Priority (int)], который можно сгруппировать в средстве тестирования Visual Studios.

К сожалению, используя приоритет, вы не можете иметь несколько тегов в одном тесте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...