Как запустить (модульные) тесты в разных папках / проектах отдельно в Visual Studio? - PullRequest
4 голосов
/ 18 августа 2008

Visual Studio folder structure

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

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

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

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

TestDriven.net test run output

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

Ответы [ 4 ]

2 голосов
/ 18 августа 2008

Я действительно нашел какое-то решение для этого самостоятельно, используя команду клавиатуры, привязанную к макросу. Макрос был записан из меню Инструменты> Макросы> Запись TemporaryMacro. Во время записи я выбрал папку [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 голосов
/ 25 августа 2008

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

http://www.codeplex.com/VS2008UnitTestGUI

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

0 голосов
/ 18 августа 2008

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

0 голосов
/ 18 августа 2008

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

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

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