Можете ли вы сгруппировать модульные тесты в рамках одного тестового проекта в VS2008? - PullRequest
2 голосов
/ 06 марта 2009

Можете ли вы сгруппировать модульные тесты в рамках одного тестового проекта в VS2008?

Например, test1 и test2 относятся к группе A. Test4 и test5 относятся к группе B.

Я не хочу, чтобы тесты в группе B выполнялись, если я не выбрал их явно. Это потому, что не все тесты должны быть включены в автоматическое тестирование.

РЕДАКТИРОВАТЬ:
Перефразируя вторую часть.
Я могу создавать группы с помощью редактора списка тестов. Можно ли выбрать только одну или две из этих групп для автоматической проверки?

например. Я хочу, чтобы группа A выполнялась как автоматические тесты каждую ночь, а группа B - для тестовых прогонов вручную.

Ответы [ 3 ]

3 голосов
/ 06 марта 2009

В окне тестового просмотра есть поле со списком «По группам». Вы можете группировать тесты по имени класса, пространству имен, описанию и т. Д.

Таким образом, используя это в сочетании с некоторыми атрибутами, которые доступны в ваших методах тестирования, такими как Category, вы можете быть более избирательными при выполнении тестов.

РЕДАКТИРОВАТЬ: это только решение при ручном запуске тестов. Возможно, подобное решение доступно и при автоматическом тестировании, когда вы выбираете запуск только тестов определенной категории или в определенном пространстве имен.

2 голосов
/ 06 марта 2009

Проверьте редактор списка тестов (под Test | Windows). Это показывает вам все тесты в решении. Слева вы можете создать TreeView групп, и каждый тест можно перетащить в группу. С помощью флажков на каждом узле TreeView вы легко можете выбрать, какие тестовые группы (группы) вы хотите запустить или отладить.

Это то, что вы искали?

Эта информация хранится в файле метаданных vsmdi, поэтому ее следует сохранить. Однако я не уверен, связано ли (и как) это с автоматическим тестированием. Для меня это выглядит как функция VS GUI, предназначенная для группировки и запуска тестов вручную.

РЕДАКТИРОВАТЬ: Для автоматического тестирования я бы попытался разделить тестовый код для разных «случаев» (например, быстрых модульных тестов, которые вы всегда хотите запустить при работе с кодом, тестов производительности, которые могут занять немного времени, интеграционных тестов над несколько слоев и т. д.) семантически в разные тестовые проекты, даже если вы используете одну и ту же среду модульных тестов для физической реализации всех этих тестов. Затем вы сможете выбрать правильную группу тестов, которые должны быть выполнены в нужное время (регистрация, ежедневная сборка, ручное тестирование при необходимости).

0 голосов
/ 06 марта 2009

Концепция Visual Studio Unit Test настоятельно рекомендует использовать один тестовый проект для каждой целевой сборки. Конечно, можно использовать один тестовый проект для всех модульных тестов, но вы должны написать их вручную. Мастер юнит-тестов не такой гибкий.

NUnit более гибок. Нет ограничений в том, в какой сборке вы храните свой модульный тест. Вы можете использовать одну сборку для всех модульных тестов или даже сохранить ее в том же классе, что и целевой класс, который вы хотите протестировать.

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