4

Visual Studio folder structureКак выполнять (единичные) тесты в разных папках/проектах отдельно в Visual Studio?

Мне нужно знать, как легко отделить тестовые прогоны для модульных тестов и теста интеграции в Visual Studio. Часто или всегда я структурирую решение, как представлено на рисунке выше: отдельные проекты для модульных тестов и интеграционных тестов. Модульные тесты выполняются очень часто, в то время как тесты интеграции, естественно, выполняются, когда контекст правильно выровнен.

Моя цель - как-то настроить, какие тесты (или тестовые папки) запускать при использовании ярлыка на клавиатуре. Тесты предпочтительно должны выполняться графическим тестовым бегуном (ReSharpers). Так, например

  • Alt + 1 запускает тесты в проекте BLL.Test,
  • Alt + 2 запускает тесты в DAL.Tests проекта,
  • Alt + 3 запускает их обоих (т.е. все тесты в [тесты] папки и
  • Alt + 4 запускает тесты в папке [Tests.Integration].

TestDriven.net иметь возможность запускать только тест в выбранной папке или проект по праву -выберите его и выберите «Запустить тест (ы)». Умение сделать это, но через клавиатура и графический тестовый бегун будет потрясающе.

TestDriven.net test run output

В настоящее время я использую VS2008, ReSharper 4 и NUnit. Но совет для установки в общем, конечно, также ценится.

ответ

2

Я действительно нашел для себя это решение самостоятельно, используя команду клавиатуры, привязанную к макросу. Макрос был записан в меню «Инструменты»> «Макросы»> «Запись временного макроса». Во время записи я выбрал папку [Tests] и запустил ReSharpers UnitTest.ContextRun. Это привело к следующим макросом,

Sub TemporaryMacro() 
    DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate 
    DTE.ActiveWindow.Object.GetItem("TestUnitTest\Tests").Select(vsUISelectionType.vsUISelectionTypeSelect) 
    DTE.ExecuteCommand("ReSharper.UnitTest_ContextRun") 
End Sub 

который затем был связан с его собственной команды клавиатуры в меню Сервис> Параметры> Окружающая среда> Клавиатура.

Однако, что было бы еще более удивительным, это более общее решение, в котором я могу точно настроить, какие проекты/папки/классы запускать и когда. Например, с помощью xml-файла. Это можно было бы легко проверить на управление версиями и распространить на всех, кто работает с проектом.

0

Это немного нерешительное решение, но вы можете настроить external tools для каждой группы тестов, которые вы хотите запустить. Я не уверен, что вы сможете запустить тестовый бегун ReSharper таким образом, но вы можете запустить консольную версию nunit. После установки этих инструментов вы можете назначить комбинации клавиш командам «Tools.ExternalCommand1», «Tools.ExternalCommand2» и т. Д.

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

0

Вы можете использовать макрос VS для анализа XML-файла, а затем вызвать nunit.exe с аргументом командной строки/fixture, чтобы указать, какие классы запускать или генерировать файл сохранения выбора и запускать nunit, используя это.

0

Я никогда не использовал это, но, возможно, это могло бы помочь ...

http://www.codeplex.com/VS2008UnitTestGUI

«Описание проекта Этот проект о запуске всех модульных тестов внутри тестов блок с несколькими .NET сборки закодированных с Visual Studio 2008»