다음을 통해 공유


Lab Management 워크플로 사용자 지정

응용 프로그램 빌드, 새 빌드 환경에 배포 하 고 새 빌드에 대해 테스트를 실행을 자동화 하 랩 환경 실험실 기본 서식 파일 (LabDefaultTemplate)를 사용할 수 있습니다.실험실 기본 템플릿을 사용 하는 방법에 대 한 자세한 내용은 방법: SCVMM 환경에 대한 빌드-배포-테스트 워크플로 만들기방법: 표준 환경에 대한 빌드-배포-테스트 워크플로 만들기.그러나 각 빌드, 배포 및 테스트 프로세스가 있을 수 약간 다른 요구 사항으로 인해 다른.예를 들어 한 워크플로에서는 일반 빌드 위치에서 테스트 이진을 복사해야 하는 반면 다른 워크플로에서는 임시 위치에서 테스트 이진을 복사해야 합니다.또는 하나의 워크플로 테스터를 배포할 수 있도록 다른 워크플로 랩 환경을 전혀 저장 되지 않습니다 하는 반면 랩 환경은 SCVMM 라이브러리에 저장 하도록 요구할 수 있습니다.Windows 워크플로 4.0의 실험실 기본 서식 파일을 기반으로 하기 때문에 LabDefaultTemplate 특정 요구 사항에 맞게 사용자 지정할 수 있도록 완벽 하 게 확장 및 사용자 지정할 수 것입니다.이 항목에서는 랩 기본 서식 파일을 사용자 지정 하는 일반적인 단계를 설명 합니다.

요구 사항

  • Visual Studio Ultimate, Visual Studio Premium, Visual Studio Test Professional

실험실 기본 서식 파일의 사용자 지정 유용한 몇 가지 시나리오는 다음과 같습니다.

  • 빌드 저장 위치가 아닌 테스트 이진 위치를 지정하는 사용자 지정

  • 배포 후에 컴퓨터를 다시 시작해야 하는 응용 프로그램 설치 관리자를 지원하기 위한 사용자 지정

  • 소스 제어 파일을 읽는 사용자 지정

  • 빌드 에이전트 계정을 사용하여 빌드 저장 위치에 액세스하기 위한 사용자 지정

  • 랩 서비스 계정을 사용하여 다른 위치에 액세스하기 위한 사용자 지정

워크플로 사용자 지정의 기본 개념

워크플로 사용자 지정에는 다음 세 가지 주요 개념이 사용됩니다.

  • 템플릿 템플릿은 워크플로의 일부인 활동 또는 단계의 시퀀스를 정의합니다.템플릿은 Windows Workflow Foundation 4.0을 기반으로 하며 소스 제어에 .xaml 파일로 저장됩니다.템플릿을 워크플로 편집기에 로드하려면 .xaml 파일을 두 번 클릭합니다.편집기에서 워크플로를 결정하는 다양한 활동과 시퀀스를 볼 수 있습니다.그런 후에 다른 범위, 조건부 논리, 루프 등과 함께 변수를 사용하여 다른 프로그래밍 언어와 동일한 방식으로 템플릿을 프로그래밍할 수 있습니다.Windows Workflow Foundation을 사용하면 요구에 맞게 랩 기본 템플릿을 사용자 지정할 수 있습니다.

  • 활동 활동은 워크플로의 구성 요소이고 랩 기본 템플릿은 많은 활동을 사용합니다.도구 상자Team Foundation Lab Management 활동 제목 아래에서 추가 활동을 찾을 수 있습니다.워크플로에 활동을 사용하려면 도구 상자에서 Visual Studio 워크플로 편집기에 있는 템플릿의 해당 위치로 활동을 끌어다 놓습니다.활동의 속성을 보면 입력 및 출력 매개 변수를 결정할 수 있습니다.각 Lab Management 활동에 대한 자세한 내용은 Lab Management 워크플로 작업을 참조하십시오.제품에 포함된 활동이 요구 사항을 충족하지 않는 경우 새 활동을 추가할 수 있습니다.

  • 인수 필요한 사용자 입력을 위한 새 입력 인수를 만들고 이러한 값을 활동에 전달할 수 있습니다.선택은 인수 기존 인수를 보려면 워크플로 편집기 창 맨 아래에 탭.새 인수를 만드는 경우 빌드 정의에서 프로세스 탭의 빌드 프로세스 매개 변수 탭에 표시됩니다.

사용자 지정이 필요한 다음 두 가지 예를 검토할 때 이러한 개념을 고려하십시오.첫 번째 예는 템플릿에 있는 기존 활동의 입력 인수를 변경하는 방법을 설명하고, 두 번째 예는 도구 상자에서 새 활동을 추가하는 방법을 설명합니다.이러한 예제 랩 기본 요구 사항에 맞게 템플릿을 사용자 지정할 수 충분 한 컨텍스트를 제공 해야 합니다.

사용자 지정을 시작하기 전에

가지 일반적인 단계를 랩 기본 템플릿을 사용자 지정 하려면 시작 하기 전에 완료 해야 합니다.다음 다이어그램은 이러한 단계를 보여 줍니다.

기본 워크플로 템플릿의 폴더 위치

사용자 지정을 준비하려면

  1. 팀 탐색기에서 팀 프로젝트에 대한 소스 제어 노드를 두 번 클릭합니다.

  2. 소스 제어 탐색기에서 소스 제어 트리를 확장하고 $/<Project_Name>/BuildProcessTemplates 폴더를 찾습니다.

  3. 이 폴더를 로컬 폴더(예: C:\Sources)에 매핑합니다.

  4. LabDefaultTemplate.11.xaml 파일을 마우스 오른쪽 단추로 클릭 한 다음 선택 최신 버전 가져오기.

  5. LabDefaultTemplate.11.xaml 파일의 복사본을 만들어 새 이름, 예를 들어, Labdefaulttemplate_customize.11.xaml를 제공 합니다.

  6. 이 새로운 파일을 소스 제어에 추가합니다.

  7. 이 새로운 파일을 두 번 클릭합니다.파일이 Visual Studio 워크플로 편집기에서 열립니다.

그런 다음 방금 만든 실험실 기본 서식 파일의 복사본을 사용자 지정 합니다.

빌드 저장 위치가 아닌 테스트 이진 위치를 지정하는 사용자 지정

기본 워크플로 템플릿인 LabDefaultTemplate은 테스트 이진 위치가 빌드 저장 위치와 같다고 가정합니다.하지만 이 경우에는 테스트 코드가 제품 코드와 함께 빌드되지 않을 수 있습니다.이 문제가 발생하는 경우 테스트 이진이 다른 위치에서 선택되도록 템플릿을 사용자 지정하는 것이 좋습니다.이 사용자 지정에는 다음 그림에 표시된 세 가지 단계가 포함됩니다.

도구 상자에서 Lab Management 활동 끌어 오기

Ff934561.collapse_all(ko-kr,VS.110).gif워크프로 입력 인수를 정의하여 테스트 이진 경로 지정

입력 인수를 정의하려면

  1. 워크플로 편집기 창의 맨 아래에서 인수 탭을 클릭합니다.

  2. 선택 인수를 만들.텍스트 상자에 인수의 이름(예: TestBinariesLocation)을 입력합니다.에 방향 드롭 다운 목록에서 선택 에서.에 인수 형식 드롭 다운 목록에서 선택 문자열.

Ff934561.collapse_all(ko-kr,VS.110).gifExecuteRemoteTestRun 활동에 인수 값 전달

이 활동은 원격 테스트 실행을 만들고 테스트 실행이 완료될 때까지 기다린 다음 테스트 실행 통계로 빌드 정보를 업데이트합니다.

인수 값을 전달하려면

  1. 워크플로 편집기에서 테스트 실행 중 활동으로 스크롤합니다.활동의 표시 이름은 테스트 실행 중이지만 활동 형식은 ExecuteRemoteTestRun입니다.

  2. 활동을 마우스 오른쪽 단추로 클릭 한 다음 선택 속성이.속성 창이 오른쪽 아래에서 열리고 이 활동의 입력 및 출력 인수를 표시합니다.이 활동의 입력 인수 중 하나는 TestDirectory로, 테스트 이진 위치의 경로를 설정합니다.

  3. 속성 창에서 TestDirectory를 클릭합니다.행의 끝에서 줄임표(…)를 클릭합니다.

  4. 식 편집기, Testbinarieslocation를 입력 한 다음 선택 확인.

  5. 파일 메뉴를 선택 LabDefaultTemplate_customize.11.xaml 저장

  6. 소스 제어 탐색기 메뉴 모음의 선택은 체크 아이콘.

이제 사용자 지정된 .xaml 파일을 사용하여 새 빌드 정의를 만들 수 있습니다.새로운 입력 인수 TestBinariesLocation이 빌드 정의에서 프로세스 탭의 기타 섹션에 표시되며 여기서 값을 할당할 수 있습니다.

배포 후에 컴퓨터를 다시 시작해야 하는 응용 프로그램 설치 관리자를 지원하기 위한 사용자 지정

실험실 기본 서식 파일을 하지 않습니다 다시 랩 환경 응용 프로그램을 배포한 후.배포된 후 다시 시작해야 하는 응용 프로그램을 지원하기 위해 템플릿을 사용자 지정할 수 있습니다.랩 환경에서 직접 응용 프로그램을 배포한 경우 컴퓨터 에서만 다시 시작 된다는 어디 응용 프로그램을 설치 합니다.Visual StudioLab Management 환경에서 가상 컴퓨터에 대 한 작업을 지원 하지 않습니다.따라서 한 컴퓨터를 다시 시작 합니다 랩 환경에서 모든 컴퓨터를 다시 시작 해야 합니다.

주의 정보주의

배포 스크립트를 절대로 컴퓨터를 다시 시작 해야 합니다.이 문제가 발생하는 경우 배포 스크립트를 실행 중인 빌드 에이전트와 빌드 컨트롤러의 연결이 끊어지고 워크플로가 중지될 수 있습니다.

새 빌드를 배포한 후 가상 컴퓨터를 다시 시작 합니다. Labdefaulttemplate에 추가 하는 세 가지 작업이 필요 합니다.

  1. 환경 중지

  2. 환경 시작

  3. 워크플로의 나머지 부분을 계속하기 전에 가상 컴퓨터가 시작될 때까지 기다립니다.

Ff934561.collapse_all(ko-kr,VS.110).gif환경 중지

도구 상자에서 워크플로 템플릿으로 StopLabEnvironment 활동을 끌어다 놓고 활동 변수를 초기화하면 기본 워크플로 템플릿에 환경 중지 활동을 추가할 수 있습니다.

환경을 중지하려면

  1. 워크플로 편집기에서 표시 이름이 응용 프로그램 배포 성공인 활동으로 스크롤합니다.

  2. 보기 메뉴를 선택 도구.도구 상자가 왼쪽에서 열리고 Team Foundation 빌드 활동 목록을 표시합니다.Team Foundation Lab Management 활동 목록이 표시될 때까지 활동 목록을 스크롤합니다.

  3. 도구 상자에서 선택은 StopLabEnvironment 활동.활동을 워크플로 편집기로 끌어온 다음 응용 프로그램 배포 성공 활동 앞에 놓습니다.

  4. 활동을 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.속성 창에 이 활동의 입력 및 출력 인수가 표시됩니다.워크플로에 환경 URI를 참조하는 LabEnvironmentUri라는 변수가 이미 있습니다.

  5. 선택은 변수 탭.변수 목록이 표시됩니다.

  6. LabEnvironmentUri 행의 기본값 열 아래에서 VB 식 입력을 두 번 클릭합니다.텍스트 상자에 LabEnvironmentUri를 입력합니다.편집기에 매개 변수의 기존 사용이 모두 표시되며, 값을 입력하는 대신 목록에서 선택할 수 있습니다.

Ff934561.collapse_all(ko-kr,VS.110).gif환경 시작

드래그 하 여 시작 환경 활동을 실험실 기본 서식 파일에 추가할 수 있습니다는 StartLabEnvironment 활동에서의 도구 상자 워크플로 템플릿과 활동 변수를 초기화 합니다.

환경을 시작하려면

  1. 도구 상자에서 선택은 StartLabEnvironment 활동.활동을 워크플로 편집기로 끌어온 다음 응용 프로그램 배포 성공 활동 앞, StopLabEnvironment 활동 뒤에 놓습니다.

  2. 활동을 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.속성 창에 이 활동의 입력 및 출력 인수가 표시됩니다.다시 워크플로에 환경 URI를 참조하는 LabEnvironmentUri라는 변수가 이미 있습니다.

    선택은 변수 탭.변수 목록이 표시됩니다.

    LabEnvironmentUri 행의 기본값 열 아래에서 VB 식 입력을 두 번 클릭합니다.텍스트 상자에 LabEnvironmentUri를 입력합니다.편집기에 매개 변수의 기존 사용이 모두 표시되며, 값을 입력하는 대신 목록에서 선택할 수 있습니다.

Ff934561.collapse_all(ko-kr,VS.110).gif워크플로의 나머지 부분을 계속하기 전에 컴퓨터가 다시 시작될 때까지 기다립니다.

도구 상자에서 워크플로 템플릿으로 지연 활동을 끌어다 놓고 활동 변수를 초기화하면 가상 컴퓨터가 시작되기 전의 대기 시간을 추가할 수 있습니다.이 활동은 도구 상자기본 설정 탭에 있습니다.

가상 컴퓨터가 시작될 때까지 기다리려면

  1. 도구 상자에서 선택은 기본형 탭.

  2. 지연 활동을 클릭합니다.활동을 워크플로 편집기로 끌어온 다음 응용 프로그램 배포 성공 활동 앞, StartLabEnvironment 활동 뒤에 놓습니다.

  3. 활동을 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.속성 창에 이 활동의 입력 및 출력 인수가 표시됩니다.워크플로에 대기 시간을 참조하는 Duration이라는 변수가 이미 있습니다.

  4. 속성 창을 선택 기간 다음 줄임표 (…)를 선택 합니다.

  5. 식 편집기에서 대기 시간(예: 10분)을 TimeSpan.FromMinutes(10) 형식으로 입력합니다.

이 템플릿을 수정한 후 소스 제어에 체크 인하고 템플릿을 사용하여 설치 후에 다시 시작해야 하는 응용 프로그램을 배포하는 새 빌드 정의를 만듭니다.

소스 제어 파일을 읽는 사용자 지정

사용자 지정 활동을 작성 하 고 다음 서식 파일에 워크플로 사용 하는 경우 해당 활동 랩 서비스 계정을 사용 하 여 통신을 하는 빌드 에이전트를 액세스할 수 있는지 확인 하십시오.이러한 활동을 소스 제어 시스템에 사용자 지정 어셈블리로 체크인해야 하므로 랩 서비스 계정에 사용자 지정 어셈블리가 체크 인된 경로를 읽을 수 있는 권한이 있는지 확인해야 합니다.랩 서비스 계정에 대한 자세한 내용은 방법: 랩 서비스 계정 구성을 참조하십시오. tf permissions 명령을 사용하여 랩 서비스 계정에 권한을 부여할 수 있습니다.예를 들어 $/MyProject/CustomAssemblies 경로의 랩 서비스 계정 mydomain\labAccount에 읽기 권한을 부여하려면 C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE>tf permission /user:mydomain\labAccount /collection:http://aseemb-tfs11:8080/tfs/Collection0 /allow:read $/MyProject/CustomAssemblies와 비슷한 명령을 실행해야 합니다.

빌드 에이전트 계정을 사용하여 빌드 저장 위치에 액세스하기 위한 사용자 지정

워크플로 실행 하는 빌드 에이전트의 실험실 서비스 계정을 사용 하 여 빌드 저장 위치에 액세스 합니다.빌드 에이전트 계정을 대신 사용 하도록 빌드 에이전트를 원한다 면 실험실 기본 템플릿을 사용자 지정할 수 있습니다.템플릿에서 배포 스크립트를 실행하는 RunDeploymentScript 활동을 찾습니다.이 활동은 랩 서비스 계정을 사용하여 액세스해야 하는 위치를 정의하는 SharedLocationForNetUse 속성을 노출합니다.<mtlwa:RunDeploymentScript DisplayName="Running Deployment Script" ScriptDetails="[scriptDetails]" ThrowOnError="True" SharedLocationForNetUse="[BuildLocation]" />랩 서비스 계정 대신 빌드 에이전트 계정으로 저장 위치에 액세스하려면 템플릿에서 속성을 삭제하거나 다음 예와 같이 이 속성의 값을 null({x:Null})로 설정합니다. mtlwa:RunDeploymentScript DisplayName="Running Deployment Script" ScriptDetails="[scriptDetails]" ThrowOnError="True" SharedLocationForNetUse="{x:Null}" />

랩 서비스 계정을 사용하여 다른 위치에 액세스하기 위한 사용자 지정

랩 서비스 계정으로 실행 중인 빌드 에이전트가 빌드 저장 위치가 아닌 다른 위치를 읽어야 하는 경우 SharedLocationForNetUse 속성의 값을 기본값 **[BuildLocation]**에서 원하는 위치로 변경할 수 있습니다.예를 들어 랩 서비스 계정으로 실행 중인 빌드 에이전트가 \\contoso\scripts 디렉터리에 액세스하려면 <mtlwa:RunDeploymentScript DisplayName="Running Deployment Script" ScriptDetails="[scriptDetails]" ThrowOnError="True" SharedLocationForNetUse="\\contoso\scripts" />가 있어야 합니다.

참고 항목

작업

빌드 정의 만들기

참조

.NET 4의 Windows WF(Workflow Foundation)에 대한 개발자 소개

개념

Lab Management 워크플로 작업

응용 프로그램 수명 주기에 랩 환경 사용

빌드 프로세스 정의