MSDN Library
콘텐츠의 테이블 축소
콘텐츠의 테이블 확장
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

Windows Phone 8용 앱 단위 테스트

이 항목에는 Windows Phone 앱에 대한 간단한 단위 테스트 연습이 들어 있습니다.

단위 테스트를 사용하여 앱에 있는 기능의 개별 메서드와 단위를 테스트할 수 있습니다. 개발자와 테스터는 단위 테스트를 통해 Visual C#, Visual Basic 또는 Visual C++를 사용하여 작성한 앱의 메서드에 있는 논리 오류를 빠르게 찾을 수 있습니다.

이 항목에서는 Visual Studio 2012 업데이트 2를 설치한 후 Microsoft Visual Studio Express 2012 for Windows Phone 에서 사용할 수 있는 단위 테스트 기능에 대해 설명합니다. Visual Studio Professional 및 Visual Studio Ultimate 같은 상위 Visual Studio 버전에는 단위 테스트의 추가 기능이 포함되어 있습니다.

Visual Studio 의 단위 테스트에 대한 자세한 내용은 단위 테스트를 사용하여 코드 확인을 참조하세요.

중요중요:

Windows Phone 프로젝트의 단위 테스트에는 Visual Studio 2012 업데이트 2가 필요합니다. 여기에 설명된 단위 테스트 기능 및 도구는 Windows Phone SDK 8.0 에 포함되지 않습니다.

이 항목에는 다음 단원이 포함되어 있습니다.

 

Windows Phone 앱의 단위 테스트를 만들고 실행하려면 Visual Studio 에서 다음 작업을 해야 합니다.

  1. Windows Phone 프로젝트가 포함된 솔루션에 단위 테스트 앱 프로젝트를 추가합니다.

    단위 테스트 프로젝트에서 Windows Phone 프로젝트에 대한 참조를 추가합니다.

  2. 단위 테스트 프로젝트에서 단위 테스트를 만듭니다.

  3. 도구 모음에서 테스트를 실행할 에뮬레이터 또는 대상 단말기를 선택합니다.

    테스트 탐색기를 엽니다. 테스트 탐색기에서 단위 테스트를 실행합니다.

테스트를 실행한 후 테스트가 코드에서 찾은 오류를 수정하고 필요한 경우 테스트를 반복합니다.

다음 섹션에서는 이러한 작업에 대해 설명합니다.

이 단위에서는 Windows Phone 앱에 대한 간단한 단위 테스트 연습을 시작합니다. 이 연습에는 다음 섹션에서 계속됩니다. 이 예제는 연습: 관리 코드에 대한 단위 테스트 생성 및 실행의 예제를 기반으로 합니다.

샘플 Windows Phone 프로젝트를 설정하려면

  1. 기존 Windows Phone 프로젝트에서 BankAccount라는 새 클래스를 추가합니다.

  2. 새 클래스 파일에서 기본 코드를 다음 코드로 바꿉니다.

    나중에 이 클래스에서 Debit 메서드에 대한 단위 테스트를 만듭니다.

    using System;
    
    namespace Bank
    {
        public class BankAccount
        {
            public string CustomerName { get; private set; }
            public double Balance { get; private set; }
    
            private BankAccount()
            {
            }
    
            public BankAccount(string customerName, double balance)
            {
                CustomerName = customerName;
                Balance = balance;
            }
    
            public void Debit(double amount)
            {
                if (amount > Balance)
                {
                    throw new ArgumentOutOfRangeException("amount");
                }
    
                if (amount < 0)
                {
                    throw new ArgumentOutOfRangeException("amount");
                }
    
                Balance += amount;
            }
        }
    }
    
  3. Windows Phone 프로젝트를 빌드하여 오류가 없음을 확인합니다.

단위 테스트 앱 템플릿을 사용하여 동일한 솔루션에서 별도의 프로젝트를 앱 프로젝트로 만듭니다.

솔루션에 단위 테스트 프로젝트를 추가하려면

  1. Visual Studio 의 솔루션 탐색기에서 솔루션을 마우스 오른쪽 버튼으로 클릭하고 추가 | 새 프로젝트를 선택합니다.

  2. 새 프로젝트 추가 창의 Windows Phone 템플릿 목록에서 Windows Phone 단위 테스트 앱을 선택합니다. 새 프로젝트의 이름을 BankAccountTest로 지정한 다음 확인을 클릭합니다.

  3. 솔루션 탐색기의 새 BankAccountTest 프로젝트에서 Windows Phone 프로젝트에 대한 참조를 추가합니다.

    1. BankAccountTest 프로젝트에서 참조를 마우스 오른쪽 버튼으로 클릭하고 참조 추가를 선택합니다.

    2. 참조 관리자 창에서 솔루션을 선택합니다.

    3. 솔루션의 프로젝트 목록에서 Windows Phone 프로젝트 옆에 있는 상자를 선택하고 확인을 클릭합니다.

단위 테스트 프로젝트를 추가하고 참조를 추가한 후 솔루션이 다음과 같이 표시됩니다.

A solution that includes a unit test project

새 단위 테스트 프로젝트에는 UnitTest1이라는 기본 클래스 파일이 포함되어 있습니다. 이 클래스에는 TestMethod의 빈 인스턴스 하나가 포함된 다음 기본 코드가 들어 있습니다.

using System;
using Microsoft.VisualStudio.TestPlatform.UnitTestFramework;

namespace BankAccountTest
{
    [TestClass]
    public class BankAccountTest
    {
        [TestMethod]
        public void TestMethod1()
        {
        }
    }
}

테스트 메서드를 만들려면

  1. Visual Studio 의 단위 테스트 프로젝트에서 UnitTest1.cs를 엽니다.

  2. UnitTest1 클래스 파일에서 기본 코드를 다음 코드로 바꿉니다.

    이 코드는 Windows Phone 프로젝트에 추가한 BankAccount 클래스에서 Debit 메서드에 대한 단위 테스트를 만듭니다. 이 단위 테스트는 BankAccount 클래스의 인스턴스를 만들고 지정된 금액을 인출한 다음 새 잔액이 예상 잔액과 같은지 테스트합니다.

    using System;
    using Microsoft.VisualStudio.TestPlatform.UnitTestFramework;
    using Bank;
    
    namespace BankAccountTest
    {
        [TestClass]
        public class BankAccountTests
        {
            [TestMethod]
            public void Debit_WithValidAmount_UpdatesBalance()
            {
                // arrange
                double beginningBalance = 11.99;
                double debitAmount = 4.55;
                double expected = 7.44;
    
                BankAccount account = new BankAccount("New Customer", beginningBalance);
    
                // act
                account.Debit(debitAmount);
    
                //assert
                double actual = account.Balance;
                Assert.AreEqual(expected, actual, 0.001, "Account not debited corrected");
            }
        }
    }
    
  3. 단위 테스트 프로젝트를 빌드하여 오류가 없음을 확인합니다.

일반적으로 Visual Studio 의 테스트 탐색기를 사용하여 생성된 단위 테스트를 실행합니다.

Visual Studio에서 테스트를 실행하려면

  1. Visual Studio 의 도구 모음에서 테스트를 실행할 에뮬레이터 또는 대상 단말기를 선택합니다.

  2. Visual Studio 에서 테스트 탐색기가 열려 있지 않을 경우 테스트 | 창 | 테스트 탐색기를 선택합니다. 테스트 탐색기 창에는 사용자가 만든 단일 테스트가 있고 다음과 같이 표시됩니다.

    Commands available in the Test Explorer windows
  3. 테스트 탐색기에서 모두 실행을 클릭합니다.

    실제로 Debit 메서드의 코드에 오류가 있으므로 테스트가 실패를 보고합니다. 따라서 지정된 금액을 인출한 후 실제 잔액이 예상 잔액과 같지 않습니다.

    Test Explorer shows a unit test that failed
  4. Windows Phone 프로젝트에서 Debit 메서드 코드의 오류를 수정합니다. 이렇게 하려면 Balance += amount;Balance -= amount;로 변경합니다.

  5. Windows Phone 프로젝트를 빌드하여 오류가 없음을 확인합니다.

  6. 테스트 탐색기에서 모두 실행을 다시 클릭합니다.

    테스트가 성공을 보고합니다. Windows Phone 앱에 대한 첫 번째 단위 테스트가 성공적으로 완료되었습니다.

    Test Explorer shows a test that passed

Visual Studio의 단위 테스트 실행 방법

Visual Studio 에서 다음 방법 중 하나를 사용하여 단위 테스트를 실행할 수 있습니다. 다음 섹션에 설명된 대로 명령 프롬프트에서 단위 테스트를 실행할 수도 있습니다. 단위 테스트 프로젝트를 실행하는 데는 F5 키나 Ctrl-F5를 사용할 수 없습니다.

Visual Studio에서 단위 테스트를 실행하려면

  • 테스트 탐색기에서 모두 실행 같은 도구 모음의 명령을 사용합니다.

  • 테스트 탐색기에서 테스트를 하나 이상 선택하고 마우스 오른쪽 버튼을 클릭한 다음 상황에 맞는 메뉴에서 선택한 테스트를 실행합니다.

  • 테스트 메뉴에서 실행 또는 디버그 하위 메뉴의 옵션 중 하나를 사용하여 테스트를 실행합니다.

  • 단위 테스트 클래스의 코드 창에서 마우스 오른쪽 버튼을 클릭하고 테스트 실행 또는 테스트 디버그를 선택합니다.

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

vstest.console 앱을 사용하여 명령 프롬프트에서 단위 테스트를 실행할 수도 있습니다. 명령 프롬프트에서 단위 테스트를 실행할 경우 선택적 .runsettings 파일을 사용하여 기본 에뮬레이터가 아닌 대상 단말기를 지정할 수 있습니다.

기본 에뮬레이터의 명령 프롬프트에서 단위 테스트를 실행하려면

  • vstest.console 앱을 사용하고 XAP 파일 이름을 제공하여 명령 프롬프트에서 단위 테스트 프로젝트를 실행합니다.

    일반적으로 vstest.console 앱은 다음 폴더에 있습니다.

    C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow

    다음과 예제와 같이 명령을 사용합니다.

    vstest.console D:\Projects\BankAccountTest\Bin\x86\Debug\BankAccountTest_Debug_x86.xap
    

.runsettings 파일을 사용하여 명령 프롬프트에서 단위 테스트를 실행하려면

  1. .runsettings 파일을 만들고 저장합니다. 자세한 내용은 .runsettings 파일을 사용하여 단위 테스트 구성을 참조하세요.

  2. .runsettings 파일에서 MSPhoneTest 요소와 TargetDevice 요소를 추가하여 다음 예제와 같이 대상 단말기를 지정합니다.

    <?xml version="1.0" encoding="utf-8"?>
    <RunSettings>
      . . .
      <MSPhoneTest>
        <TargetDevice>Emulator WVGA</TargetDevice>
      </MSPhoneTest>
    </RunSettings>
    
    
    
  3. 단위 테스트 프로젝트를 빌드합니다.

  4. vstest.console 앱을 사용하고 XAP 파일 및 .runsettings 파일 이름을 제공하여 명령 프롬프트에서 단위 테스트 프로젝트를 실행합니다.

    일반적으로 vstest.console 앱은 다음 폴더에 있습니다.

    C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow

    다음과 예제와 같이 명령을 사용합니다.

    vstest.console D:\Projects\BankAccountTest\Bin\x86\Debug\BankAccountTest_Debug_x86.xap /Settings:D:\Projects\BankAccountTest\BankAccountTest.runsettings
    

단위 테스트 결과를 테스트 결과(.trx) 파일로 캡처하려면

  1. 명령 프롬프트에서 실행하는 명령에 /logger:trx를 추가합니다. 예:

    vstest.console D:\Projects\BankAccountTest\Bin\x86\Debug\BankAccountTest_Debug_x86.xap /logger:trx
    
  2. 명령을 실행합니다. 이 명령은 현재 위치에 TestResults 폴더를 만들고 해당 폴더에 테스트 결과(.trx) 파일을 만듭니다.

    중요중요:

    이 명령을 사용하려면 출력 폴더 및 파일을 만들 수 있는 권한이 필요합니다. 사용자 그룹의 멤버가 폴더를 만들 수 없는 위치에서 명령을 실행하는 경우에는 관리자 권한으로 명령 프롬프트 창을 열어야 합니다. 예를 들어 프로젝트 폴더가 아니라 vstest.console 위치에서 명령을 실행하는 경우 이 작업을 수행해야 합니다.

    또는 이 항목의 앞부분에서 설명한 .runsettings 파일에서 TestResults 폴더의 위치를 지정할 수 있습니다. .runsettings 파일에서 RunConfiguration 요소와 ResultsDirectory 요소를 추가하여 다음 예제와 같이 대상 폴더를 지정합니다.

    <?xml version="1.0" encoding="utf-8"?>
    <RunSettings>
      <!-- Configurations that affect the Test Framework -->
      <RunConfiguration>
        <!-- Path relative to location of runsettings file -->
        <ResultsDirectory>.\TestResults</ResultsDirectory>
        . . .
      </RunConfiguration>
       . . .
      <MSPhoneTest>
        <TargetDevice>Emulator WVGA</TargetDevice>
      </MSPhoneTest>
    </RunSettings>
    

테스트 탐색기에서 테스트 구성 및 찾기

테스트 탐색기에서 다음 기능을 사용하여 테스트를 구성하고 찾을 수 있습니다.

테스트 탐색기에서 테스트를 구성하고 찾으려면

  • 그룹화 버튼을 클릭하여 테스트를 클래스, 기간, 결과, 특성 또는 프로젝트별로 그룹화합니다.

  • 검색 상자에 검색어를 입력하여 테스트를 찾습니다.

  • 테스트 목록을 필터링하려면 검색 상자 옆에 있는 드롭다운 목록에서 필터 기준을 선택하여 테스트 목록을 필터링합니다.

다음 스크린샷은 테스트 탐색기의 이러한 기능을 보여 줍니다.

Search box and filter options in Test Explorer

Windows Phone 앱 및 Windows 스토어 앱의 단위 테스트의 차이점

다음 표에서는 Windows Phone 앱의 단위 테스트와 Windows 스토어 앱의 단위 테스트 간 차이점에 대해 설명합니다.

기능

Windows Phone 앱의 단위 테스트.

Windows 스토어 앱의 단위 테스트

테스트 실행 대상

에뮬레이터 또는 휴대폰

테스트는 항상 로컬로 실행됩니다.

기능 집합

다음 기능은 지원되지 않습니다.

  • UITest 메서드

  • 비동기 Assert 메서드

Windows Phone 앱에 대해 지원되지 않는다고 나열된 기능이 Windows 스토어 앱에 대해 지원됩니다.

팀 빌드 지원

지원되지 않습니다.

단위 테스트를 팀 빌드의 일부로 실행하기 위한 지원을 포함합니다.

단위 테스트에 대한 자세한 내용은 다음 문서를 참조하세요.

다음 항목에서는 Windows Phone 앱의 단위 테스트와 비슷한 Windows 스토어 앱의 단위 테스트에 대해 설명합니다.

표시:
© 2016 Microsoft