방법: 데이터 기반 코딩된 UI 테스트 만들기

만들 수는 코딩 된 UI 테스트 응용 프로그램에 대 한 사용자 인터페이스 (UI) 올바르게 작동 하는지 여부를 테스트 합니다.코딩된 UI 테스트에서는 응용 프로그램의 사용자 인터페이스 컨트롤에 대한 작업을 수행하고 지정된 컨트롤에 올바른 값이 표시되는지 확인합니다.코딩된 UI 테스트를 만드는 방법에 대한 자세한 내용은 코딩 된 UI 테스트 만들기를 참조하십시오.

요구 사항

  • Visual Studio Ultimate, Visual Studio Premium

지정된 데이터를 사용하여 코딩된 UI 테스트를 만든 다음 매번 데이터 집합을 바꿔 가며 코딩된 UI 테스트를 여러 차례 실행하여 각기 다른 조건을 테스트할 수 있습니다.이렇게 하려면 데이터 소스의 매개 변수 값을 추가하여 데이터 기반의 코딩된 UI 테스트를 만들면 됩니다.데이터 소스의 각 행은 코딩된 UI 테스트의 각 반복 실행을 나타냅니다.테스트의 전체 결과는 모든 반복의 결과를 기반으로 합니다.예를 들어 테스트 반복이 하나라도 실패하면 전체 테스트 결과가 실패한 것으로 간주됩니다.

코딩된 UI 테스트에 대한 메서드나 어설션을 기록하여 생성하면 기록된 메서드에서 참조하는 모든 상수가 매개 변수 클래스에 매개 변수화됩니다.예를 들어 AddTwoNumbers라는 메서드를 추가하면 코딩된 UI 테스트 프레임워크에서는 AddTwoNumbersParams라는 다른 클래스를 생성하고 메서드를 기록할 때 사용한 각 상수 값에 대한 필드를 이 클래스에 추가합니다.AssertForAdd라는 어설션 메서드를 생성하면 프레임워크에서는 예상 값에 대해 AssertforAddExpectedValues라는 클래스를 추가합니다.이러한 클래스는 자동으로 생성되며 이후의 단계에서 사용됩니다.

테스트의 소스 코드 파일에 매개 변수를 수 있습니다 데이터 원본을 사용할 수 있도록 테스트에 대 한 모든 변경 내용 (I.e.CodedUITest1.cs).UIMap.Designer.cs 파일의 코드는 수정할 수 없습니다.

코딩된 UI 테스트를 만든 후 다음 절차에서 설명하는 단계에 따라 데이터 소스와 매개 변수를 테스트에 추가할 수 있습니다.이 예제에서는 다음 코드 요소가 솔루션에 포함되어 있는 것으로 가정합니다.

  • CodedUITest1이라는 코딩된 UI 테스트 클래스

  • CodedUITestMethod1()이라는 테스트 메서드

테스트 메서드는 숫자 두 개를 더하는 간단한 계산기 응용 프로그램을 대상으로 합니다. 숫자의 합이 올바른 것으로 확인되면 이 테스트를 통과합니다.

데이터 소스는 다음 데이터를 포함하는 .csv 파일입니다.

Input1

Input2

ExpectedResult

3

4

7

5

6

11

1200

24000

25200

파일을 만들고 코딩 된 UI 테스트 프로젝트에 추가 합니다.

데이터 기반 코딩된 UI 테스트 만들기

데이터 기반 코딩된 UI 테스트를 만들려면

  1. 솔루션 탐색기, 코딩 된 UI 테스트 프로젝트가 포함 된 솔루션을 연 다음 편집에 대 한 코딩 된 UI 테스트를 엽니다.

  2. DataSource 특성에서 줄 바로 위의 테스트 메서드 코드를 직접 삽입 합니다.코드를 복사 하 여 아래 표에 샘플 데이터 소스 문자열을 사용 하 고 필요한 사용자 지정을 만들 수 있습니다.

    날짜 원본 유형

    데이터 원본 특성

    CSV

    [DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\data.csv", "data#csv", DataAccessMethod.Sequential), DeploymentItem("data.csv"), TestMethod]

    Excel

    DataSource("System.Data.Odbc", "Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xls)};dbq=|DataDirectory|\\Data.xls;defaultdir=.;driverid=790;maxbuffersize=2048;pagetimeout=5;readonly=true", "Sheet1$", DataAccessMethod.Sequential), TestMethod]

    Team Foundation Server 테스트 사례

    [DataSource("Microsoft.VisualStudio.TestTools.DataSource.TestCase", "http://vlm13261329:8080/tfs/DefaultCollection;Agile", "30", DataAccessMethod.Sequential), TestMethod]

    XML

    [DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", "|DataDirectory|\\data.xml", "Iterations", DataAccessMethod.Sequential), DeploymentItem("data.xml"), TestMethod]

    SQL Express

    [DataSource("System.Data.SqlClient", "Data Source=.\\sqlexpress;Initial Catalog=tempdb;Integrated Security=True", "Data", DataAccessMethod.Sequential), TestMethod]

    이제 이 테스트 메서드에 데이터 소스를 사용할 수 있습니다.데이터 소스의 현재 데이터 행에 액세스하는 데는 TestContext.DataRow를 사용합니다.다음 구문을 사용하여 각 열에 액세스할 수 있습니다.

    string paramVal = TestContext.DataRow["Input1"]
    
  3. 솔루션 탐색기에서 CodedUITest1.cs 파일을 엽니다.CodedUITestMethod1() 메서드를 다음과 같이 변경합니다.

    1. AddTwoNumbers 메서드에 대한 호출 앞에 다음 두 줄의 코드를 추가하여 추가할 숫자 값을 제공합니다.

      this.UIMap.AddTwoNumbersParams.TextInput1EditText = 
          TestContext.DataRow["Input1"].ToString();
      this.UIMap.AddTwoNumbersParams.TextInput2EditText = 
          TestContext.DataRow["Input2"].ToString();
      
    2. AssertforAdd 메서드에 대한 호출 앞에 다음 코드 줄을 추가하여 어설션 메서드에 값을 제공합니다.

      this.UIMap.AssertforAddExpectedValues.TextAnswerEditText = 
          TestContext.DataRow["ExpectedResult"].ToString();
      

      코딩된 UI 테스트 메서드에 매개 변수와 데이터 소스를 추가한 결과는 다음과 같습니다.

      [DeploymentItem("DataDriven.csv"), 
          DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", 
              "|DataDirectory|\\DataDriven.csv", "DataDriven#csv", 
              DataAccessMethod.Sequential), 
          TestMethod]
      public void CodedUITestMethod1()
      {
          // To generate code for this test, select "Generate Code for 
          // Coded UI Test" from the shortcut menu and select one of 
          // the menu items.
          this.UIMap.AddTwoNumbersParams.TextInput1EditText = 
              TestContext.DataRow["Input1"].ToString();
          this.UIMap.AddTwoNumbersParams.TextInput2EditText = 
              TestContext.DataRow["Input2"].ToString();
          this.UIMap.AddTwoNumbers();
      
          this.UIMap.AssertforAddExpectedValues.TextAnswerEditText = 
              TestContext.DataRow["ExpectedResult"].ToString();
          this.UIMap.AssertforAdd();
      }
      
  4. CodedUITest1.cs 소스 코드 파일의 변경 내용을 저장합니다.

  5. 코딩 된 UI 테스트를 실행 하려면 코드 편집기에서는 코딩 된 UI 테스트를 마우스 오른쪽 단추로 클릭 하 고 선택 를 실행 하는 단위 테스트.

    테스트를 실행한 후에는 모든 테스트 반복에 대한 전체 테스트 결과가 테스트 결과 창에 표시됩니다.각 반복에 대한 세부 정보를 보려면 테스트 결과 창에서 테스트를 두 번 클릭합니다.

지침

자세한 내용은 Visual Studio 2012 2 장 연속 배달 테스트: 단위 테스트: 내부 테스트Visual Studio 2012 5 장 연속 배달에 대 한 테스트: 자동화 시스템 테스트

참고 항목

참조

UIMap

Assert

개념

코딩된 사용자 인터페이스 테스트를 사용하여 코드 확인

최선의 코딩된 UI 테스트 방법

코딩된 UI 테스트 및 작업 기록에 지원되는 구성 및 플랫폼

기타 리소스

코딩 된 UI 테스트 만들기