연습: 코딩된 UI 테스트 만들기, 편집 및 유지 관리Walkthrough: Creating, Editing and Maintaining a Coded UI Test

이 연습에서는 간단한 WPF(Windows Presentation Foundation) 웹 응용 프로그램을 만들어, 코딩된 UI 테스트를 만들고 편집하고 유지 관리하는 방법을 보여 줍니다.In this walkthrough, you will create a simple Windows Presentation Foundation (WPF) application to demonstrate how to create, edit, and maintain a coded UI test. 이 연습에서는 여러 타이밍 문제 및 제어 리팩터링으로 인해 중단된 테스트를 해결하기 위한 방법을 제공합니다.The walkthrough provides solutions for correcting tests that have been broken by various timing issues and control refactoring.

필수 구성 요소Prerequisites

이 연습을 수행하려면 다음이 필요합니다.For this walkthrough you will need:

  • Visual Studio EnterpriseVisual Studio Enterprise

간단한 WPF 응용 프로그램 만들기Create a Simple WPF Application

  1. 파일 메뉴에서 새로 만들기를 가리킨 다음 프로젝트를 선택합니다.On the FILE menu, point to New, and then select Project.

    새 프로젝트 대화 상자가 나타납니다.The New Project dialog box appears.

  2. 설치됨 창에서 Visual C#을 확장한 다음 Windows 데스크톱을 선택합니다.In the Installed pane, expand Visual C#, and then select Windows Desktop.

  3. 가운데 창 위에서 대상 프레임워크 드롭다운 목록이 .NET Framework 4.5로 설정되어 있는지 확인합니다.Above the middle pane, verify that the target framework drop-down list is set to .NET Framework 4.5.

  4. 가운데 창에서 WPF 응용 프로그램 템플릿을 선택합니다.In the middle pane, select the WPF Application template.

  5. 이름 텍스트 상자에 SimpleWPFApp을 입력합니다.In the Name text box, type SimpleWPFApp.

  6. 프로젝트를 저장할 폴더를 선택합니다.Choose a folder where you will save the project. 위치 텍스트 상자에 폴더 이름을 입력합니다.In the Location text box, type the name of the folder.

  7. 확인을 선택합니다.Choose OK.

    Visual Studio용 WPF Designer가 열리고 프로젝트의 MainWindow가 표시됩니다.The WPF Designer for Visual Studio opens and displays MainWindow of the project.

  8. 현재 도구 상자가 열려 있지 않으면 엽니다.If the toolbox is not currently open, open it. 보기 메뉴를 선택한 다음 도구 상자를 선택합니다.Choose the VIEW menu, and then choose Toolbox.

  9. 모든 WPF 컨트롤 섹션에서 Button, CheckBoxProgressBar 컨트롤을 디자인 화면의 MainWindow로 끌어옵니다.Under the All WPF Controls section, drag a Button, CheckBox and ProgressBar control onto the MainWindow in the design surface.

  10. Button 컨트롤을 선택합니다.Select the Button control. 속성 창에 Name 속성의 값을 <이름 없음>에서 button1으로 변경합니다.In the Properties window, change the value for the Name property from <No Name> to button1. 그런 다음 Content 속성 값을 Button에서 Start로 변경합니다.Then change the value for the Content property from Button to Start.

  11. ProgressBar 컨트롤을 선택합니다.Select the ProgressBar control. 속성 창에 Name 속성의 값을 <이름 없음>에서 progressBar1로 변경합니다.In the Properties window, change the value for the value for the Name property from <No Name> to progressBar1. 그런 다음 Maximum 속성 값을 100에서 10000으로 변경합니다.Then change the value for the Maximum property from 100 to 10000.

  12. Checkbox 컨트롤을 선택합니다.Select the Checkbox control. 속성 창에서 Name 속성을 <이름 없음>에서 checkBox1로 변경하고 IsEnabled 속성을 선택 취소합니다.In the Properties window, change the value for the Name property from <No Name> to checkBox1 and clear the IsEnabled property.

    간단한 WPF 응용 프로그램Simple WPF Application

  13. 단추 컨트롤을 두 번 클릭하여 Click 이벤트 처리기를 추가합니다.Double-click the button control to add a click event handler.

    MainWindow.xmal.cs가 새 button1_Click 메서드의 커서와 함께 코드 편집기에 표시됩니다.The MainWindow.xmal.cs is displayed in the Code Editor with the cursor in the new button1_Click method.

  14. MainWindow 클래스의 맨 위에 대리자를 추가합니다.At the top of the MainWindow class, add a delegate. 대리자는 진행률 표시줄에 사용됩니다.The delegate will be used for the progress bar. 대리자를 추가하려면 다음 코드 추가합니다.To add the delegate, add the following code:

    public partial class MainWindow : Window  
    {  
            private delegate void ProgressBarDelegate(System.Windows.DependencyProperty dp, Object value);          
    
        public MainWindow()  
        {  
    
            InitializeComponent();  
        }  
    
  15. button1_Click 메서드에 다음 코드를 추가합니다.In the button1_Click method, add the following code:

    private void button1_Click(object sender, RoutedEventArgs e)  
    {  
        double progress = 0;  
    
        ProgressBarDelegate updatePbDelegate =  
            new ProgressBarDelegate(progressBar1.SetValue);  
    
        do  
        {  
            progress ++;  
    
            Dispatcher.Invoke(updatePbDelegate,  
                System.Windows.Threading.DispatcherPriority.Background,  
                new object[] { ProgressBar.ValueProperty, progress });  
            progressBar1.Value = progress;  
        }  
        while (progressBar1.Value != progressBar1.Maximum);  
    
        checkBox1.IsEnabled = true;  
    }  
    
  16. 파일을 저장합니다.Save the file.

WPF 응용 프로그램이 제대로 실행되는지 확인Verify the WPF Application Runs Correctly

  1. 디버그 메뉴에서 디버깅 시작을 선택하거나 F5 키를 누릅니다.On the DEBUG menu, select Start Debugging or press F5.

  2. 확인란 컨트롤은 사용하지 않도록 설정되어 있습니다.Notice that the check box control is disabled. 시작을 선택합니다.Choose Start.

    몇 초 안에 진행률 표시줄이 100% 완료로 표시됩니다.In a few seconds, the progress bar should be 100% complete.

  3. 이제 확인란 컨트롤을 선택할 수 있습니다.You can now select the check box control.

  4. SimpleWPFApp를 닫습니다.Close SimpleWPFApp.

SimpleWPFApp에 대해 코딩된 UI 테스트 만들기 및 실행Create and Run a Coded UI Test for SimpleWPFApp

  1. 앞에서 만든 SimpleWPFApp 응용 프로그램을 찾습니다.Locate the SimpleWPFApp application that you created earlier. 기본적으로 응용 프로그램은 C:\Users\<사용자 이름>\Documents\Visual Studio <버전>\Projects\SimpleWPFApp\SimpleWPFApp\bin\Debug\SimpleWPFApp.exe에 있습니다.By default, the application will be located at C:\Users\<username>\Documents\Visual Studio <version>\Projects\SimpleWPFApp\SimpleWPFApp\bin\Debug\SimpleWPFApp.exe

  2. SimpleWPFApp 응용 프로그램에 대한 바탕 화면 바로 가기를 만듭니다.Create a desktop shortcut to the SimpleWPFApp application. SimpleWPFApp.exe를 마우스 오른쪽 단추로 클릭한 다음 복사를 선택합니다.Right-click SimpleWPFApp.exe and choose Copy. 바탕 화면에서 마우스 오른쪽 단추를 클릭하고 바로 가기 붙여넣기를 선택합니다.On your desktop, right-click and choose Paste shortcut.

    응용 프로그램 바로 가기를 사용하면 응용 프로그램을 신속하게 시작할 수 있기 때문에 응용 프로그램에 대해 코딩된 UI 테스트를 쉽게 추가하거나 수정할 수 있습니다.A shortcut to the application makes it easier to add or modify Coded UI tests for your application because it lets you start the application quickly.

  3. 솔루션 탐색기에서 솔루션을 마우스 오른쪽 단추로 클릭하고 추가를 선택한 다음 새 프로젝트를 선택합니다.In Solution Explorer, right-click the solution, choose Add and then select New Project.

    새 프로젝트 추가 대화 상자가 나타납니다.The Add New Project dialog box appears.

  4. 설치됨 창에서 Visual C#을 확장한 다음 테스트를 선택합니다.In the Installed pane, expand Visual C#, and then select Test.

  5. 가운데 창에서 코딩된 UI 테스트 프로젝트 템플릿을 선택합니다.In the middle pane, select the Coded UI Test Project template.

  6. 확인을 선택합니다.Choose OK.

    솔루션 탐색기에서 CodedUITestProject1이라는 새로 코딩된 UI 테스트 프로젝트가 솔루션에 추가됩니다.In Solution Explorer, the new coded UI test project named CodedUITestProject1 is added to your solution.

    코딩된 UI 테스트에 대한 코드 생성 대화 상자가 나타납니다.The Generate Code for Coded UI Test dialog box appears.

  7. 작업 기록, UI 맵 편집 또는 어설션 추가 옵션을 선택하고 확인을 선택합니다.Select the Record actions, edit UI map or add assertions option and choose OK.

    UIMap – 코딩된 UI 테스트 빌더가 나타나고 Visual Studio 창이 최소화됩니다.The UIMap - Coded UI Test Builder appears, and the Visual Studio window is minimized.

    대화 상자의 옵션에 대한 자세한 내용은 코딩된 UI 테스트 만들기를 참조하세요.For more information about the options in the dialog box, see Creating Coded UI Tests.

  8. UIMap – 코딩된 UI 테스트 빌더에서 기록 시작을 선택합니다.Choose Start Recording on the UIMap - Coded UI Test Builder.

    기록 시작Start recording

    필요한 경우, 예를 들어 들어오는 메일을 처리해야 하는 경우 기록을 일시 중지할 수 있습니다.You can pause the recording if needed, for example if you have to deal with incoming mail.

    기록 일시 중지Pause the recording

    경고

    데스크톱에서 수행된 모든 작업이 기록됩니다.All actions performed on the desktop will be recorded. 기록에 중요한 데이터가 포함될 수 있는 작업을 수행하는 경우에는 기록을 일시 중지합니다.Pause the recording if you are performing actions that may lead to sensitive data being included in the recording.

  9. 바탕 화면 바로 가기를 사용하여 SimpleWPFApp을 시작합니다.Launch the SimpleWPFApp using the desktop shortcut.

    이전처럼 확인란 컨트롤은 사용하지 않도록 설정되어 있습니다.As before, notice that the check box control is disabled.

  10. SimpleWPFApp에서 시작을 선택합니다.On the SimpleWPFApp, choose Start.

    몇 초 안에 진행률 표시줄이 100% 완료로 표시됩니다.In a few seconds, the progress bar should be 100% complete.

  11. 이제 사용하도록 설정된 확인란 컨트롤을 선택합니다.Check the check box control which is now enabled.

  12. SimpleWPFApp 응용 프로그램을 닫습니다.Close the SimpleWPFApp application.

  13. UIMap – 코딩된 UI 테스트 빌더에서 코드 생성을 선택합니다.On the UIMap - Coded UI Test Builder, choose Generate Code.

  14. 메서드 이름에 SimpleAppTest를 입력하고 추가 후 생성을 선택합니다.In the Method Name type SimpleAppTest and choose Add and Generate. 그러면 몇 초 안에 코딩된 UI 테스트가 나타나고 솔루션에 추가됩니다.In a few seconds, the Coded UI test appears and is added to the Solution.

  15. UIMap – 코딩된 UI 테스트 빌더를 닫습니다.Close the UIMap - Coded UI Test Builder.

    CodedUITest1.cs 파일이 코드 편집기에 나타납니다.The CodedUITest1.cs file appears in the Code Editor.

  16. 프로젝트를 저장합니다.Save your project.

코딩된 UI 테스트 실행Run the Coded UI Test

  1. 테스트 메뉴에서 을 선택한 다음 테스트 탐색기를 선택합니다.From the TEST menu, choose Windows and then choose Test Explorer.

  2. 빌드 메뉴에서 솔루션 빌드를 선택합니다.From the BUILD menu, choose Build Solution.

  3. CodedUITest1.cs 파일에서 CodedUITestMethod 메서드를 찾아 마우스 오른쪽 단추로 클릭한 다음 테스트 실행을 선택하거나 테스트 탐색기에서 테스트를 실행합니다.In the CodedUITest1.cs file, locate the CodedUITestMethod method, right-click and select Run Tests, or run the test from Test Explorer.

    코딩된 UI 테스트가 실행되는 동안 SimpleWPFApp를 볼 수 있습니다.While the coded UI test runs, the SimpleWPFApp is visible. 이전 절차에서 수행한 단계가 실행됩니다.It conducts the steps that you did in the previous procedure. 그러나 테스트에서 확인란 컨트롤에 해당하는 확인란을 선택하려고 시도하면 테스트 결과 창에서 테스트가 실패했음을 보여 줍니다.However, when the test tries to select the check box for the check box control, the Test Results window shows that the test failed. 진행률 표시줄이 100% 완료 상태가 될 때까지 확인란 컨트롤을 사용할 수 없다는 사실을 모르고 테스트에서 해당 확인란을 선택하려고 시도했기 때문입니다.This is because the test tries to select the check box but is not aware that the check box control is disabled until the progress bar is 100% complete. 이와 같은 문제는 코딩된 UI 테스트에 사용할 수 있는 다양한 UITestControl.WaitForControlXXX() 메서드를 사용하여 해결할 수 있습니다.You can correct this and similar issues by using the various UITestControl.WaitForControlXXX() methods that are available for coded UI testing. 다음 절차에서는 WaitForControlEnabled() 메서드를 사용하여, 테스트 실패의 원인이 된 문제를 해결하는 방법을 보여 줍니다.The next procedure will demonstrate using the WaitForControlEnabled() method to correct the issue that caused this test to fail. 자세한 내용은 코딩된 UI 테스트가 재생 중 특정 이벤트를 기다리도록 지정을 참조하세요.For more information, see Making Coded UI Tests Wait For Specific Events During Playback.

코딩된 UI 테스트 편집 및 다시 실행Edit and Rerun the Coded UI Test

  1. 테스트 탐색기 창에서 실패한 테스트를 선택하고 StackTrace 섹션에서 UIMap.SimpleAppTest()에 대한 첫 번째 링크를 선택합니다.In the Test Explorer window, select the failed test and in the StackTrace section, choose the first link to UIMap.SimpleAppTest().

  2. UIMap.Designer.cs 파일이 열리고 코드에서 오류 지점이 강조 표시되어 있습니다.The UIMap.Designer.cs file opens with the point of error highlighted in the code:

    
    // Select 'CheckBox' check box  
    uICheckBoxCheckBox.Checked = this.SimpleAppTestParams.UICheckBoxCheckBoxChecked;  
    
  3. 이 문제를 해결하려면 WaitForControlEnabled() 메서드를 사용하여 이 줄을 계속하기 전에 UI 테스트에서 CheckBox 컨트롤을 기다릴 수 있도록 설정하면 됩니다.To correct this problem, you can make the coded UI test wait for the CheckBox control to be enabled before continuing on to this line using the WaitForControlEnabled() method.

    경고

    UIMap.Designer.cs 파일은 수정하지 마세요.Do not modify the UIMap.Designer.cs file. UIMap - 코딩된 UI 테스트 빌더를 사용하여 코드를 생성할 때마다 UIMapDesigner.cs 파일에서 수정된 코드 변경 내용을 덮어씁니다.Any code changes you make in the UIMapDesigner.cs file will be overwritten every time you generate code using the UIMap - Coded UI Test Builder. 기록된 메서드를 수정해야 하는 경우에는 해당 메서드를 UIMap.cs 파일에 복사한 후 이름을 바꾸어야 합니다.If you have to modify a recorded method, you must copy it to UIMap.cs file and rename it. UIMap.cs 파일을 사용하여 UIMapDesigner.cs 파일의 메서드와 속성을 재정의할 수 있습니다.The UIMap.cs file can be used to override methods and properties in the UIMapDesigner.cs file. 코딩된 UITest.cs 파일에서 원래 메서드에 대한 참조를 제거하고 이름을 바꾼 메서드 이름으로 바꾸어야 합니다.You must remove the reference to the original method in the Coded UITest.cs file and replace it with the renamed method name.

  4. 솔루션 탐색기에서 코딩된 UI 테스트 프로젝트의 UIMap.uitest를 찾습니다.In Solution Explorer, locate UIMap.uitest in your coded UI test project.

  5. UIMap.uitest에 대한 바로 가기 메뉴를 열고 열기를 선택합니다.Open the shortcut menu for UIMap.uitest and choose Open.

    코딩된 UI 테스트가 코딩된 UI 테스트 편집기에 표시됩니다.The coded UI test is displayed in the Coded UI Test Editor. 이제 코딩된 UI 테스트를 보고 편집할 수 있습니다.You can now view and edit the coded UI test.

  6. UI 작업 창에서 UIMap.cs 또는 UIMap.vb 파일로 이동할 테스트 메서드(SimpleAppTest)를 선택하면 테스트 코드를 다시 컴파일할 때 덮어쓰이지 않는 사용자 지정 코드 기능이 더 쉬워집니다.In the UI Action pane, select the test method (SimpleAppTest) that you want to move to the UIMap.cs or UIMap.vb file to facilitate custom code functionality which won't be overwritten when the test code is recompiled.

  7. 코딩된 UI 테스트 편집기 도구 모음에서 코드 이동 단추를 선택합니다.Choose the Move Code button on the Coded UI Test Editor toolbar.

  8. Microsoft Visual Studio 대화 상자가 표시됩니다.A Microsoft Visual Studio dialog box is displayed. 메서드가 UIMap.uitest 파일에서 UIMap.cs 파일로 이동하며 더 이상 코딩된 UI 테스트 편집기를 사용하여 메서드를 편집할 수 없다는 경고가 나타납니다.It warns you that the method will be moved from the UIMap.uitest file to the UIMap.cs file and that you will no longer be able to edit the method using the Coded UI Test Editor. 를 선택합니다.Choose Yes.

    테스트 메서드가 UIMap.uitest 파일에서 제거되고 더 이상 UI 작업 창에 표시되지 않습니다.The test method is removed from the UIMap.uitest file and no longer is displayed in the UI Actions pane. 이동한 테스트 파일을 편집하려면 솔루션 탐색기에서 UIMap.cs 파일을 엽니다.To edit the moved test file, open the UIMap.cs file from Solution Explorer.

  9. Visual StudioVisual Studio 도구 모음에서 저장을 선택합니다.On the Visual StudioVisual Studio toolbar, choose Save.

    테스트 메서드 업데이트가 UIMap.Designer 파일에 저장됩니다.The updates to the test method are saved in the UIMap.Designer file.

    주의

    메서드를 이동하면 더 이상 코딩된 UI 편집기를 사용하여 편집할 수 없습니다.Once you have moved the method, you can no longer edit it using the Coded UI Test Editor. 코드 편집기를 사용하여 사용자 지정 코드를 추가하고 유지 관리해야 합니다.You must add your custom code and maintain it using the Code Editor.

  10. 메서드 이름을 SimpleAppTest()에서 ModifiedSimpleAppTest()로 바꿉니다.Rename the method from SimpleAppTest() to ModifiedSimpleAppTest()

  11. 다음 using 문을 파일에 추가합니다.Add the following using statement to the file:

    
    using Microsoft.VisualStudio.TestTools.UITesting.WpfControls;  
    
  12. 이전에 식별된 잘못된 코드 줄 앞에 다음 WaitForControlEnabled() 메서드를 추가합니다.Add the following WaitForControlEnabled() method before the offending line of code identified previously:

    
              uICheckBoxCheckBox.WaitForControlEnabled();  
    
    // Select 'CheckBox' check box  
    uICheckBoxCheckBox.Checked = this.SimpleAppTestParams.UICheckBoxCheckBoxChecked;  
    
  13. CodedUITest1.cs 파일에서 CodedUITestMethod 메서드를 찾고 원래 SimpleAppTest() 메서드에 대한 참조를 주석으로 처리하거나 이름을 바꾼 다음 새 ModifiedSimpleAppTest():로 바꿉니다.In the CodedUITest1.cs file, locate the CodedUITestMethod method and either comment out or rename the reference to the original SimpleAppTest() method and then replace it with the new ModifiedSimpleAppTest():

    [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.  
                // For more information on generated code, see http://go.microsoft.com/fwlink/?LinkId=179463  
                //this.UIMap.SimpleAppTest();  
                this.UIMap.ModifiedSimpleAppTest();  
            }  
    
  14. 빌드 메뉴에서 솔루션 빌드를 선택합니다.On the BUILD menu, choose Build Solution.

  15. CodedUITestMethod 메서드를 마우스 오른쪽 단추로 클릭하고 테스트 실행을 선택합니다.Right-click the CodedUITestMethod method and select Run Tests.

  16. 이번에는 코딩된 UI 테스트가 테스트의 모든 단계를 성공적으로 수행하며 테스트 탐색기 창에 성공으로 표시됩니다.This time the coded UI test successfully completes all the steps in the test and Passed is displayed in the Test Explorer window.

SimpleWPFApp의 컨트롤 리팩터링Refactor a Control in the SimpleWPFApp

  1. Designer의 MainWindow.xaml 파일에서 Button 컨트롤을 선택합니다.In the MainWindow.xaml file, in the Designer, select the button control.

  2. 속성 창 상단에서 Name 속성 값을 button1에서 buttonA로 변경합니다.At the top of the Properties window, change the Name property value from button1 to buttonA.

  3. 빌드 메뉴에서 솔루션 빌드를 선택합니다.On the BUILD menu, choose Build Solution.

  4. 테스트 탐색기에서 CodedUITestMethod1을 실행합니다.In Test Explorer, run CodedUITestMethod1.

    코딩된 UI 테스트가 원래 UIMap에서 button1으로 매핑된 Button 컨트롤을 찾을 수 없으므로 테스트가 실패합니다.The test fails because the coded UI test cannot locate the button control that was originally mapped in the UIMap as button1. 리팩터링은 코딩된 UI 테스트에 이러한 방식으로 영향을 줄 수 있습니다.Refactoring can impact coded UI tests in this manner.

  5. 테스트 탐색기 창의 StackTrace 섹션에서 UIMpa.ModifiedSimpleAppTest() 옆의 첫 번째 링크를 선택합니다.In the Test Explorer window, in the StackTrace section, choose the first link next to UIMpa.ModifiedSimpleAppTest().

    UIMap.cs 파일이 열립니다.The UIMap.cs file opens. 코드에서 오류 지점이 강조 표시됩니다.The point of error is highlighted in the code:

    
    // Click 'Start' button  
    Mouse.Click(uIStartButton, new Point(27, 10));  
    

    이 절차 앞부분의 코드 줄에서는 리팩터링되기 전의 UIMap 이름인 UiStartButton을 사용합니다.Notice that the line of code earlier in this procedure is using UiStartButton, which is the UIMap name before it was refactored.

    이 문제를 해결하려면 코딩된 UI 테스트 빌더를 사용하여 UIMap에 리팩터링된 컨트롤을 추가하면 됩니다.To correct the issue, you can add the refactored control to the UIMap by using the Coded UI Test Builder. 다음 절차에서와 같이 코드를 사용하도록 테스트의 코드를 업데이트할 수 있습니다.You can update the test's code to use the code, as demonstrated in the next procedure.

리팩터링된 컨트롤 매핑 및 코딩된 UI 테스트 편집 및 다시 실행Map Refactored Control and Edit and Rerun the Coded UI Test

  1. CodedUITest1.cs 파일의 CodedUITestMethod1() 메서드에서 마우스 오른쪽 단추를 클릭하고 코딩된 UI 테스트에 대한 코드 생성을 선택한 다음 코딩된 UI 테스트 빌더 사용을 선택합니다.In the CodedUITest1.cs file, in the CodedUITestMethod1() method, right-click, select Generate Code for Coded UI Test and then choose Use Coded UI Test Builder.

    UIMap – 코딩된 UI 테스트 빌더가 나타납니다.The UIMap - Coded UI Test Builder appears.

  2. 앞에서 만든 바탕 화면 바로 가기를 사용하여, 앞에서 만든 SimpleWPFApp 응용 프로그램을 실행합니다.Using the desktop shortcut you created earlier, run the SimpleWPFApp application that you created earlier.

  3. UIMap – 코딩된 UI 테스트 빌더에서 십자형 도구를 SimpleWPFApp의 시작 단추로 끌어옵니다.On the UIMap - Coded UI Test Builder, drag the crosshair tool to the Start button on the SimpleWPFApp.

    시작 단추가 파랑 상자 안에 포함되며 코딩된 UI 테스트 빌더에서 몇 초 안에 선택한 컨트롤의 데이터가 처리되고 컨트롤 속성이 표시됩니다.The Start button is enclosed in a blue box and the Coded UI Test Builder takes a few seconds to process the data for the selected control and displays the controls properties. AutomationUId의 이름은 buttonA로 지정됩니다.Notice that the AutomationUId is named buttonA.

  4. 컨트롤에 대한 속성에서 왼쪽 위 모퉁이의 화살표를 선택하여 UI 컨트롤 맵을 확장합니다.In the properties for the control, choose the arrow at the upper-left corner to expand the UI Control Map. UIStartButton1이 선택되어 있습니다.Notice that UIStartButton1 is selected.

  5. 도구 모음에서 UI 컨트롤 맵에 컨트롤 추가를 선택합니다.In the toolbar, choose the Add control to UI Control Map.

    창 맨 아래에 선택한 컨트롤이 UI 컨트롤 맵에 추가되었습니다.라는 상태가 표시되어 작업을 확인할 수 있습니다.The status at the bottom of the window verifies the action by displaying Selected control has been added to the UI control map.

  6. UIMap – 코딩된 UI 테스트 빌더에서 코드 생성을 선택합니다.On the UIMap - Coded UI Test Builder, choose Generate Code.

    새 메서드가 필요하지 않으며 UI 컨트롤 맵의 변경 내용에 대해서만 코드가 생성될 것이라는 메모와 함께 코딩된 UI 테스트 빌더 – 코드 생성이 나타납니다.The Coded UI Test Builder - Generate Code appears with a note indicating that no new method is required and that code will only be generated for the changes to the UI control map.

  7. 생성을 선택합니다.Choose Generate.

  8. SimpleWPFApp.exe를 닫습니다.Close SimpleWPFApp.exe.

  9. UIMap – 코딩된 UI 테스트 빌더를 닫습니다.Close UIMap - Coded UI Test Builder.

    UIMap – 코딩된 UI 테스트 빌더에서 몇 초 안에 UI 컨트롤 맵 변경 내용이 처리됩니다.The UIMap - Coded UI Test Builder takes a few seconds to process the UI control map changes.

  10. 솔루션 탐색기에서 UIMap.Designer.cs 파일을 엽니다.In Solution Explorer, open the UIMap.Designer.cs file.

  11. UIMap.Designer.cs 파일에서 UIStartButton1 속성을 찾습니다.In the UIMap.Designer.cs file, locate the UIStartButton1 property. SearchProperties"buttonA"로 설정되어 있습니다.Notice the SearchProperties is set to "buttonA":

    
    public WpfButton UIStartButton1  
            {  
                get  
                {  
                    if ((this.mUIStartButton1 == null))  
                    {  
                        this.mUIStartButton1 = new WpfButton(this);  
                        #region Search Criteria  
                        this.mUIStartButton1.SearchProperties[WpfButton.PropertyNames.AutomationId] = "buttonA";  
                        this.mUIStartButton1.WindowTitles.Add("MainWindow");  
                        #endregion  
                    }  
                    return this.mUIStartButton1;  
                }  
            }  
    

    이제 새로 매핑된 컨트롤을 사용하도록 코딩된 UI 테스트를 수정할 수 있습니다.Now you can modify the coded UI test to use the newly mapped control. 이전 절차에서 언급했듯이 코딩된 UI 테스트에서 메서드나 속성을 재정의하려는 경우에는 UIMap.cs 파일에서 재정의해야 합니다.As pointed out in the previous procedure if you want to override any methods or properties in the coded UI test, you must do so in the UIMap.cs file.

  12. UIMap.cs 파일에서 생성자를 추가하고 SearchProperties 값을 가진 UIStartButton 속성을 사용하도록 AutomationID 속성의 "buttonA": 속성을 지정합니다.In the UIMap.cs file, add a constructor and specify the SearchProperties property of the UIStartButton property to use the AutomationID property with a value of "buttonA":

    
    public UIMap()  
            {  
                this.UIMainWindowWindow.UIStartButton.SearchProperties[WpfButton.PropertyNames.AutomationId] = "buttonA";  
            }  
    
  13. 빌드 메뉴에서 솔루션 빌드를 선택합니다.On the BUILD menu, choose Build Solution.

  14. 테스트 탐색기에서 CodedUITestMethod1을 실행합니다.In Test Explorer, run CodedUITestMethod1.

    이번에는 코딩된 UI 테스트가 테스트의 모든 단계를 성공적으로 수행합니다.This time, the coded UI test successfully completes all the steps in the test. 테스트 결과 창에 상태가 성공으로 표시됩니다.In the Test Results Window, you will see a status of Passed.

외부 리소스External Resources

비디오Videos

비디오 링크 Coded UI Tests-DeepDive-Episode1-GettingStartedlink to video Coded UI Tests-DeepDive-Episode1-GettingStarted

비디오 링크 Coded UI Tests-DeepDive-Episode2-MaintainenceAndDebugginglink to video Coded UI Tests-DeepDive-Episode2-MaintainenceAndDebugging

비디오 링크 Coded UI Tests-DeepDive-Episode3-HandCodinglink to video Coded UI Tests-DeepDive-Episode3-HandCoding

실습Hands on lab

MSDN 가상 랩: Visual Studio 2010을 사용하여 코딩된 UI 테스트 만들기 소개MSDN Virtual Lab: Introduction to Creating Coded UI Tests with Visual Studio 2010

FAQFAQ

코딩된 UI 테스트 FAQ - 1Coded UI Tests FAQ - 1

코딩된 UI 테스트 FAQ - 2Coded UI Tests FAQ -2

포럼Forum

Visual Studio UI 자동화 테스트(CodedUI 포함)Visual Studio UI Automation Testing (includes CodedUI)

참고 항목See Also

UI 자동화를 사용하여 코드 테스트 Use UI Automation To Test Your Code
WPF Designer 시작 Getting Started with the WPF Designer
코딩된 UI 테스트 및 작업 기록에 지원되는 구성 및 플랫폼 Supported Configurations and Platforms for Coded UI Tests and Action Recordings
코딩된 UI 테스트 편집기를 사용하여 코딩된 UI 테스트 편집Editing Coded UI Tests Using the Coded UI Test Editor