Files
networkSetup/.claude/skills/msix-integration-test/SKILL.md
T
jychoi4andClaude Opus 5.5 905e6d4eaa chore: add Claude Code guidelines, rules and skills
- CLAUDE.md: product principles, crate layering, common commands, commits.
- .claude/rules: common, Rust, frontend, Tauri IPC, docs and security rules.
- .claude/skills: check, add-tauri-command, project-model-change,
  change-record, msix-integration-test, backlog-status.

Refs #16

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 11:09:05 +09:00

3.3 KiB

name, description
name description
msix-integration-test Windows SDK MakeAppx.exe를 찾아 MSIX_TEST_MAKEAPPX로 지정하고 package-infra의 ignored 통합 테스트(실제 pack/unpack, 계획 거부, 중복 빌드, 내보내기, 취소)를 실행한 뒤 결과를 해석·기록한다. 선택적으로 FixtureAlpha/Beta 시험 앱을 생성한다. "통합 테스트", "MakeAppx", "실제 빌드 시험", "SDK 테스트", "--ignored"에 사용한다.

MakeAppx 통합 시험

cargo test --workspace는 SDK 테스트를 건너뛴다. 실제 MSIX 생성 경로는 이 절차로만 검증된다. 이 시험은 설치 시험이 아니다. 결과를 "설치 검증"이라고 쓰지 않는다.

1. MakeAppx 찾기

Get-ChildItem 'C:\Program Files (x86)\Windows Kits\10\bin\*\x64\makeappx.exe' |
  Sort-Object FullName -Descending | Select-Object -First 1 -ExpandProperty FullName
  • 없으면 중단하고 사용자에게 Windows SDK 설치가 필요하다고 알린다. 자동 설치하지 않는다.
  • 여러 버전이 있으면 가장 높은 버전을 쓰되, 사용한 경로와 SHA-256을 기록한다:
(Get-FileHash -Algorithm SHA256 '<경로>').Hash.ToLower()
  • 서명 테스트는 같은 폴더의 signtool.exe를 자동으로 쓴다. 없으면 서명 관련 테스트가 실패하므로 결과 해석 시 구분한다.

2. 실행

D:\networkSetup\src에서. 실행 중인 msix-studio.exe/tauri dev는 종료한다.

$env:MSIX_TEST_MAKEAPPX = '<makeappx.exe 절대 경로>'
cargo test --locked -p package-infra --test workflow -- --ignored --nocapture
Remove-Item Env:MSIX_TEST_MAKEAPPX

또는 전체 검사와 함께: .\scripts\Check.ps1 -MakeAppx '<경로>'.

시험 앱이 필요하면(GUI에서 열어 볼 fixture):

.\scripts\New-Fixtures.ps1 -MakeAppx '<경로>'   # 기존 .work/demo 폴더는 덮어쓰지 않음

3. 결과 해석

통합 테스트가 확인하는 것: 두 identity의 pack/unpack, 원본 변경 후 계획 거부(InputChanged), 같은 계획 중복 실행 거부, 내보내기 해시 무결성, 취소 시 자식 프로세스 종료.

증상 원인
MissingTool 경로 오타 또는 환경 변수 미설정
UnsupportedTool 파일 이름이 makeappx.exe가 아님
ToolFailed ... pack.log manifest 또는 자산 문제. 로그 파일 경로를 열어 MakeAppx 메시지를 읽는다
ToolTimeout 15분 초과. 안티바이러스 실시간 검사 또는 디스크 문제
IdentityMismatch, ArtifactMismatch 역추출 결과가 계획과 다름. 엔진 버그 가능성, 재현 후 보고
서명 테스트만 실패 signtool.exe 부재 또는 인증서 저장소 상태. 테스트 PC의 저장소를 바꾸지 않는다

4. 기록

  • change-record 스킬의 검증 JSON에 makeAppx: { path, sha256 }, 통과한 테스트 이름, 실패/미실행 항목을 적는다.
  • installationTest는 "notRun", deploymentReady는 false.
  • 생성된 샘플이 output/samples/ 아래면 커밋되지 않는다. 다른 위치에 만들었으면 추적 여부를 확인한다.

금지

  • Install-TestCertificate.ps1 실행, Add-AppxPackage, 인증서 저장소 변경.
  • 실패한 테스트를 #[ignore]로 바꾸거나 단언을 약화.
  • 결과를 "두 제품 MSIX 설치/업데이트/제거 검증 완료"(BL-53)로 기록.