패키지 빌드
패키지는 애플리케이션 이진 및 테스트 스크립트를 포함하는 .zip 파일로, 테스트 베이스를 사용하기 위한 필수 구성 요소입니다. 이 빠른 시작에서는 애플리케이션에서 기본 제공 테스트를 수행할 수 있는 첫 번째 패키지를 빌드하는 방법을 안내합니다.
- OOB(Out-of-Box) 테스트는 애플리케이션 설치, 시작, 닫기 및 제거를 수행합니다. 설치 후 시작 닫기 루틴은 단일 제거가 실행되기 전에 30번 반복됩니다. OOB 테스트는 패키지에서 표준화된 원격 분석을 제공하여 Windows 빌드 간에 비교할 수 있습니다.
필요에 따라 샘플 패키지를 다운로드하여 참조하고 시작할 수 있습니다.
폴더 구조 만들기
로컬 컴퓨터에서 다음과 같이 폴더 구조를 만듭니다.

다음 폴더가 사용됩니다.
- App\bin: 애플리케이션 및 종속성 이진 파일을 저장합니다.
- App\scripts: 애플리케이션을 설치, 시작, 닫고 제거할 스크립트를 저장합니다.
- App\logs: 스크립트는 이 폴더에 로그를 출력해야 하며, 테스트가 완료된 후 로그를 다운로드하고 분석할 수 있습니다.
이진 파일 복사
애플리케이션 설치 파일을 App\bin 에 복사합니다. 애플리케이션에 종속성이 있는 경우 먼저 설치해야 합니다. 또한 종속성 설치 파일을 App\bin 에 복사합니다.

PowerShell 스크립트 추가
OOB 테스트를 수행하려면 PowerShell 스크립트를 추가하여 애플리케이션을 설치, 시작, 닫고 제거해야 합니다.
참고
OOB 테스트에서는 설치, 시작 및 닫기 스크립트가 필요하지만 제거 스크립트는 선택 사항입니다.
스크립트는 다음과 같이 폴더에 추가되어야 합니다.

스크립트에는 일반적으로 다음과 같은 동작이 포함됩니다.
- 명령을 실행하여 애플리케이션을 설치/시작/닫거나 제거합니다. 예를 들어 애플리케이션이 MSI 파일인 경우 msiexec 를 실행하여 설치합니다.
- 설치/시작/닫기/제거 작업의 결과를 확인하고 결과가 필요한 경우 0개의 종료 코드를 반환합니다. Test Base는 0이 아닌 종료 코드를 반환하는 경우 스크립트 실행을 실패로 표시합니다.
- 충분한 로그를 저장하고 나중에 사용할 수 있는 적절한 로그를 저장합니다.
다음 예제를 참조하세요. 파일에 복사하고 그에 따라 변경할 수 있습니다.
설치 스크립트(App\scripts\install\job.ps1)의 예:
push-location $PSScriptRoot
$exit_code = 0
$script_name = $myinvocation.mycommand.name
$log_dir = "$PSScriptRoot\..\..\logs"
$log_file = "$log_dir\$script_name.log"
if(-not (test-path -path $log_dir )) {
new-item -itemtype directory -path $log_dir
}
Function log {
Param ([string]$log_string)
write-host $log_string
add-content $log_file -value $log_string
}
log("Installing TestBaseM365 Digital Clock")
push-location "..\..\bin"
if ([Environment]::Is64BitProcess) {
$installer_name = "TestBaseM365DigitalClock.msi"
}
else {
$installer_name = "TestBaseM365DigitalClock.msi"
}
$arguments = "/i "+$installer_name+" /quiet /L*v "+"$log_dir"+"\atp-client-installation.log"
$installer = Start-Process msiexec.exe $arguments -wait -passthru
pop-location
if ($installer.exitcode -eq 0) {
log("Installation succesful as $($installer.exitcode)")
}
else {
log("Error: Installation failed as $($installer.exitcode)")
$exit_code = $installer.exitcode
}
log("Installation script finished as $exit_code")
pop-location
exit $exit_code
시작 스크립트(App\scripts\launch\job.ps1)의 예:
push-location $PSScriptRoot
$exit_code = 0
$script_name = $myinvocation.mycommand.name
$log_dir = "$PSScriptRoot\..\..\logs"
$log_file = "$log_dir\$script_name.log"
if(-not (test-path -path $log_dir )) {
new-item -itemtype directory -path $log_dir
}
Function log {
Param ([string]$log_string)
write-host $log_string
add-content $log_file -value $log_string
}
log("Launch TestBaseM365 Digital Clock")
$PROCESS_NAME = "DigitalClock"
$exePath = "C:\Program Files\Test Base M365\DigitalClock\DigitalClock.exe"
Start-Process -FilePath $exePath
if (Get-Process -Name $PROCESS_NAME) {
log("Launch successfully $PROCESS_NAME...")
$exit_code = 0
}
else {
log("Not launched $PROCESS_NAME...")
$exit_code = 1
}
log("Launch script finished as $exit_code")
pop-location
exit $exit_code
zip 파일로 압축
스크립트 및 이진 파일이 준비되면 폴더를 zip 파일로 압축합니다. 앱 폴더를 마우스 오른쪽 단추로 클릭하고 ZIP 파일로 압축을 선택합니다.

패키지를 로컬로 확인(선택 사항)
zip 패키지를 빌드한 후 테스트 기본 계정에 업로드할 수 있습니다.
그러나 업로드하기 전에 스크립트가 제대로 작동하는지 확인하기 위해 테스트를 로컬로 실행하는 것이 좋습니다. 로컬 테스트는 문제를 빠르게 식별하고 업로드 프로세스를 가속화할 수 있습니다. 로컬로 확인하려면 다음 단계를 수행합니다.
VM 준비(Virtual Machine)
현재 각 테스트에 대해 깨끗한 Windows 환경이 필요하므로 이 로컬 테스트에 가상 머신을 사용하는 것이 좋습니다. Azure에서 Windows VM을 쉽게 만들 수 있습니다(빠른 시작: Windows 가상 머신). 테스트에 적합한 Windows 버전(이미지)을 선택할 수 있습니다(예: Windows 10 Pro, 버전 21H2).
VM에 패키지 복사
패키지 파일을 VM에 복사하는 방법에는 여러 가지가 있습니다. Azure VM을 사용하는 경우 다음을 선택할 수 있습니다.
- 원격 데스크톱 연결에서 직접 파일을 복사합니다.
- Azure 파일 공유 사용(빠른 시작: Azure 파일 만들기 및 관리)
이 테스트에 대한 특정 폴더를 만들고 이 폴더 아래에 패키지 파일을 복사할 수 있습니다. 예: C:\TestBase.
패키지 테스트
Windows PowerShell 열고 패키지가 포함된 디렉터리(예:
cd C:\TestBase디렉터리)로 전환하고 패키지에서 테스트를 실행하기 시작합니다.패키지 파일을 추출합니다.
Expand-Archive -LiteralPath C:\TestBase\App.zip -DestinationPath C:\TestBase설치 스크립트를 실행합니다.
C:\TestBase\App\scripts\install\job.ps1필요한 경우 VM을 다시 시작합니다.
시작 스크립트를 실행합니다.
C:\TestBase\App\scripts\install\job.ps1닫기 스크립트를 실행합니다.
C:\TestBase\App\scripts\close\job.ps1제거 스크립트를 실행합니다(있는 경우).
C:\TestBase\App\scripts\uninstall\job.ps1
각 단계 후에 스크립트에 문제가 있는지 확인할 수 있습니다. 모든 스크립트가 예상대로 실행되면 패키지를 테스트 기본 계정에 업로드할 준비가 된 것입니다.