다음을 통해 공유


연습: 스마트 장치 단위 테스트 만들기 및 실행

업데이트: 2007년 11월

이 연습에서는 장치 프로젝트용 Team System 테스트 도구를 사용하여 일련의 테스트를 만들고, 실행하고, 사용자 지정하는 방법을 보여 줍니다. 개발 중인 C# 스마트 장치 응용 프로그램으로 시작하여 테스트 프로젝트와 단위 테스트를 차례로 만들고 테스트를 실행한 후 결과를 검토합니다.

참고:

다음 지침처럼 컴퓨터에서 Visual Studio 사용자 인터페이스 요소 일부에 대한 이름이나 위치를 다르게 표시할 수 있습니다. 이러한 요소는 사용하는 Visual Studio 버전 및 설정에 따라 결정됩니다. 자세한 내용은 Visual Studio 설정을 참조하십시오.

이 연습에서는 다음 작업을 수행합니다.

  • 기존 프로젝트를 열고 메서드를 만듭니다.

  • 단위 테스트 및 장치 테스트 프로젝트를 만듭니다.

  • 실행 구성을 봅니다.

  • 단위 테스트를 실행합니다.

  • 명령 프롬프트에서 단위 테스트를 실행합니다.

사전 요구 사항

이 연습을 시작하기 전에 연습: 장치용 Windows Forms 응용 프로그램 만들기 절차를 완료해야 합니다. 사전 연습에서는 이 연습을 완료하는 데 필요한 .NET Compact Framework 2.0을 Pocket PC 2003 에뮬레이터에 설치합니다. 에뮬레이터 창을 열어 두거나 에뮬레이터의 상태를 저장하십시오. 자세한 내용은 상태 저장 파일을 참조하십시오.

기존 프로젝트 열기 및 메서드 만들기

기존 프로젝트를 열고 메서드를 만들려면

  1. Visual Studio를 시작합니다.

  2. 파일 메뉴에서 열기를 가리킨 다음 프로젝트/솔루션을 클릭합니다.

    프로젝트 열기 대화 상자가 나타납니다.

  3. 사전 연습에서 만든 DeviceSample 프로젝트로 이동한 다음 확인을 클릭합니다.

    DeviceSample 프로젝트가 솔루션 탐색기에 표시됩니다.

  4. 솔루션 탐색기에서 Form1.cs(C#) 또는 Form1.vb(Visual Basic)를 마우스 오른쪽 단추로 클릭한 다음 코드 보기를 클릭하여 파일을 코드 편집기에서 엽니다.

  5. 커서를 Form1 클래스 안에 놓습니다.

  6. 다음 코드를 삽입합니다.

    public int Add(int a, int b) {return a + b;}
    
    Public Function Add(ByVal a As Integer, ByVal b As Integer) As Integer 
        Return a + b
    End Function 'Add
    
  7. 빌드 메뉴에서 솔루션 빌드를 클릭합니다.

    이제 테스트할 소스 코드가 포함된 DeviceSample이라는 프로젝트가 준비되었습니다. DeviceSample에 대한 네임스페이스 DeviceSample에는 다음 절차에서 테스트할 메서드가 포함된 Form1이라는 공용 클래스가 있습니다.

단위 테스트 및 장치 테스트 프로젝트 만들기

단위 테스트 및 장치 테스트 프로젝트를 만들려면

  1. 솔루션 탐색기에서 Form1.cs(C#) 또는 Form1.vb(Visual Basic)를 마우스 오른쪽 단추로 클릭한 다음 코드 보기를 클릭하여 파일을 코드 편집기에서 엽니다.

    참고:

    DeviceSample 프로젝트에는 테스트할 코드, 즉 테스트 중인 코드라고 하는 코드가 들어 있습니다.

  2. Form1 클래스에서 Add 메서드로 스크롤합니다.

  3. Add 메서드를 마우스 오른쪽 단추로 클릭하고 단위 테스트 만들기를 선택합니다.

    단위 테스트 만들기 대화 상자가 표시됩니다.

    현재 선택 영역 창에 Form1 클래스를 포함하는 어셈블리의 클래스 및 멤버 계층 구조가 트리 구조로 표시됩니다. 이 페이지에서는 선택한 해당 멤버에 대한 단위 테스트를 생성하고, 생성된 단위 테스트를 저장할 테스트 프로젝트를 선택할 수 있습니다.

    트리 구조에는 Add 메서드만 선택되어 있습니다. 이 메서드는 선택된 상태로 둡니다.

  4. 출력 프로젝트에 대해 새 스마트 장치 Visual C# 테스트 프로젝트 만들기를 클릭합니다.

    참고:

    테스트 프로젝트 언어와 프로젝트 언어가 일치하지 않아도 됩니다. 예를 들어, Visual Basic 장치 프로젝트에 스마트 장치 Visual C# 테스트 프로젝트를 만들 수 있습니다.

  5. 설정을 클릭합니다.

    테스트 생성 설정 대화 상자가 나타납니다. 이름 지정 설정 그룹에서 테스트 파일, 테스트 클래스 및 테스트 메서드가 생성될 때 이름을 지정하는 방식을 변경할 수 있습니다. 일반 그룹에서는 테스트 생성의 다른 부분을 변경할 수 있습니다. 이러한 설정의 기본값을 그대로 두고 확인을 클릭합니다.

  6. 단위 테스트 만들기 대화 상자에서 확인을 클릭합니다.

    새 테스트 프로젝트 대화 상자가 나타납니다.

  7. 기본 이름을 지정한 다음 만들기를 클릭합니다.

    그러면 TestProject1이라는 프로젝트가 만들어지는데, 이 프로젝트에는 단위 테스트, 테스트 목록과 테스트에 대한 정보가 포함된 DeviceSample.vsmdi 파일, 테스트 실행 위치 및 실행 방법에 대한 정보가 포함된 SmartDeviceTestRun.testrunConfig 파일이 포함되어 있습니다.

    이 테스트 프로젝트에 테스트 클래스가 포함된 Form1Test.cs 파일이 추가됩니다.

    참고:

    모든 테스트 메서드에는 TestMethod() 특성이 자동으로 할당됩니다. 각 테스트는 테스트할 테스트 중인 코드의 단일 메서드에 해당합니다. 테스트 메서드는 TestClass() 특성이 할당되는 테스트 클래스에 포함됩니다.

  8. Form1Test.cs에서 테스트할 변수 값을 지정합니다. AddTest 메서드로 스크롤하면 설정할 변수, 즉 a, b 및 expected를 나타내는 세 개의 // TODO 줄이 표시됩니다.

  9. 다음 값을 설정합니다.

    int a = 4;
    int b = 5;
    int expected = 9;
    

    이는 4와 5라는 값을 사용하여 메서드를 호출할 때 9라는 값이 반환되도록 지정합니다.

  10. Assert 문을 주석으로 처리합니다.

    Assert.Inconclusive("Verify the correctness of this test method.");
    

    이 나머지 Assert 문은 예상되는 결과(9)를 Form1 클래스의 Add 메서드를 호출한 실제 결과와 비교합니다. 두 값이 같지 않으면 Assert는 False를 반환하므로 테스트가 실패합니다.

  11. Form1Tests.cs 파일을 저장합니다.

    DeviceSample 프로젝트에 대한 테스트가 포함된 소스 코드 파일을 만들었습니다. 이제 DeviceSample 프로젝트의 코드에 대한 Form1Test 클래스에서 테스트를 실행할 준비가 되었습니다.

실행 구성 보기

실행 구성을 보려면

  1. 솔루션 탐색기에서 SmartDeviceTestRun.testrunConfig 파일을 두 번 클릭합니다.

  2. Hosts를 클릭합니다.

  3. Host type이 Smart Device로, Platform이 Pocket PC 2003으로, 그리고 Device가 Pocket PC 2003 SE Emulator로 설정되어 있는지 확인합니다.

  4. 닫기를 클릭하여 끝냅니다.

    테스트 실행 컨텍스트를 지정하는 실행 구성을 확인했습니다.

단위 테스트 실행

단위 테스트를 실행하고 사용자 지정하려면

  1. 테스트 메뉴에서 창을 가리킨 다음 테스트 뷰를 클릭합니다.

    테스트 뷰 창이 나타납니다.

  2. AddTest를 마우스 오른쪽 단추로 클릭하고 선택 영역 실행을 클릭합니다.

    Visual Studio에서 테스트를 장치 에뮬레이터에 배포한 후 실행합니다. 테스트 결과 창이 아직 열려 있지 않으면 해당 창을 엽니다.

    테스트가 실행 중인 동안에는 테스트 결과 창의 결과 열에 테스트 상태가 진행 중으로 표시됩니다. 테스트 실행이 끝나면 테스트 결과가 성공으로 변경됩니다.

    참고:

    Visual Studio에서는 테스트를 배포할 때 대상 장치나 에뮬레이터에 .NET Compact Framework 또는 SQL Server Compact 3.5를 자동으로 배포 및 설치하지 않습니다. 따라서 테스트를 실행하려면 에뮬레이터나 장치에 이러한 프로그램이 설치되어 있어야 합니다. 자세한 내용은 방법: 장치에 .NET Compact Framework 설치방법: 장치에 SQL Server Compact 3.5 설치을 참조하십시오.

  3. 테스트 결과 창에서 테스트를 나타내는 행을 두 번 클릭합니다.

    그러면 테스트 결과에 대한 정보가 포함된 테스트 결과 정보 페이지가 열립니다.

    Form1Test 테스트 클래스에서 생성된 AddTest 메서드를 실행하고 그 결과를 확인했습니다.

명령 프롬프트에서 단위 테스트 실행

단위 테스트를 실행하고 사용자 지정하려면

  1. 시작을 클릭하고 모든 프로그램, Microsoft Visual Studio 2008, Visual Studio Tools를 차례로 가리킨 다음 Visual Studio 2008 명령 프롬프트를 클릭합니다.

    drive:\Program Files\Microsoft Visual Studio 9.0\VC 폴더에서 명령 프롬프트가 열립니다.

  2. 테스트 프로젝트에서 빌드된 어셈블리가 있는 폴더로 디렉터리를 변경합니다.

    이렇게 하려면 먼저 디렉터리를 솔루션 폴더로 변경합니다. 사전 연습에서 만든 DeviceSample 솔루션의 경우 이 폴더는 drive:\Users\username\My Documents\Visual Studio\Projects\DeviceSample입니다. 그런 다음 명령 프롬프트에 다음 명령을 입력하여 디렉터리를 테스트 프로젝트에 대한 폴더로 변경합니다.

    cd TestProject1\bin\Debug

    참고:

    전체 경로를 지정하여 다른 폴더에서 MSTest.exe를 실행할 수도 있습니다.

    이 폴더에는 단위 테스트 만들기 및 실행 절차에서 만든 테스트 프로젝트가 포함되어 있습니다. 테스트 프로젝트 어셈블리 TestProject1.dll에는 몇 개의 단위 테스트가 포함되어 있습니다.

    참고:

    프로덕션 코드 프로젝트와 테스트 프로젝트에서는 고유 어셈블리를 생성합니다. 명령줄 유틸리티는 프로덕션 코드 프로젝트의 어셈블리가 아니라 테스트 프로젝트의 어셈블리에서 실행해야 합니다.

  3. 명령줄 유틸리티를 사용하여 응용 프로그램을 테스트합니다.

    명령 프롬프트에 다음을 입력합니다.

    MSTest /testcontainer:TestProject1.dll /runconfig:..\..\..\SmartDevicetestrun.testrunconfig

    참고:

    스마트 장치에서 단위 테스트를 실행할 때는 /runconfig 옵션을 지정해야 합니다.

    이 명령은 어셈블리에 있는 테스트를 모두 실행하고 다음과 같은 결과를 반환합니다.

    testproject1.dll을(를) 로드하고 있습니다...

    실행을 시작하고 있습니다...

    결과 최상위 테스트

    ------- ---------------

    성공 TestProject1.Form1Test.AddTest

    1/1개 테스트 성공

    요약

    -------

    테스트 실행이 완료되었습니다.

    성공 1

    ---------

    합계 1

    결과 파일: <path>\<test run name>.trx

    실행 구성: 기본 실행 구성

    참고:

    mstest.exe를 실행하면 생성되는 .trx 파일을 Visual Studio에서 열어 테스트 결과를 보다 자세히 검토할 수 있습니다. MSTest 명령에 사용할 수 있는 전체 옵션에 대한 자세한 내용은 MSTest.exe 명령줄 옵션을 참조하십시오.

    MSTest.exe 명령줄 유틸리티는 배치 파일이나 기타 유틸리티에서 테스트 실행이 시작되도록 자동화할 때 특히 유용합니다.

참고 항목

개념

단위 테스트 프레임워크

기타 리소스

단위 테스트 작업

스마트 장치 프로젝트용 테스트 도구