Visual Studio에서 개별적으로 다른 폴더/프로젝트의 (단위) 테스트를 어떻게 실행하나요?

StackOverflow https://stackoverflow.com/questions/13938

문제

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을 사용하고 있습니다.그러나 일반적인 설정에 대한 조언도 물론 감사합니다.

도움이 되었습니까?

해결책

저는 실제로 매크로에 바인딩된 키보드 명령을 사용하여 이에 대한 일종의 해결책을 스스로 찾았습니다.매크로는 도구>매크로>임시 매크로 기록 메뉴에서 기록되었습니다.기록하는 동안 [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 파일을 사용합니다.그런 다음 버전 관리에 쉽게 체크인하고 프로젝트에 참여하는 모든 사람에게 배포할 수 있습니다.

다른 팁

이것은 다소 까다로운 솔루션이지만 일부를 구성할 수 있습니다. 외부 도구 실행하려는 각 테스트 그룹에 대해.이 방법으로 ReSharper 테스트 실행기를 시작할 수 있는지는 확실하지 않지만 콘솔 버전의 nunit을 실행할 수는 있습니다.이러한 도구를 설정한 후에는 "Tools.ExternalCommand1", "Tools.ExternalCommand2" 등에 키보드 단축키를 할당할 수 있습니다.

이는 확장성이 매우 좋지 않으며 변경하기가 어색합니다. 하지만 테스트를 실행하기 위한 키보드 단축키를 제공합니다.이 작업을 수행하는 훨씬 간단한 방법이 있어야 할 것 같습니다.

VS 매크로를 사용하여 XML 파일을 구문 분석한 다음 /fixture 명령줄 인수로 nunit.exe를 호출하여 실행할 클래스를 지정하거나 선택 저장 파일을 생성하고 이를 사용하여 nunit을 실행할 수 있습니다.

나는 이것을 사용해본 적이 없지만 어쩌면 도움이 될 수도 있습니다....

http://www.codeplex.com/VS2008UnitTestGUI

"프로젝트 설명이 프로젝트는 Visual Studio 2008으로 코딩 된 다중 .NET 단위 테스트 어셈블리 내에서 모든 단위 테스트를 실행하는 것입니다."

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top