"Microsoft Test Manager : Start automated sanity test"
$testRunID = & "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\TCM.exe" run /create /title:"Automated UI Tests" /planid:27 /suiteid:721 /configid:10 /settingsname:"UI Test Settings" /testenvironment:"MyTestEnvironment" /collection:"http://MyCollection" /teamproject:Main /builddir:"C:\MyBuildDir" /include
"Get test run ID from TCM output"
$testRunID = $testRunID.substring(21)
$testRunID = $testRunID.TrimEnd(".")
"Store test run ID in user environment variable"
[Environment]::SetEnvironmentVariable("CodedUITestRunID", "$testRunID", "User")
이것은 내 해결책입니다. 나는 tcm.exe의 실행 결과를 $ testRunID에 저장하고, "Run with ID :"라는 문자열의 시작 부분을 제거한 다음, 문자열의 끝에서 전체 중지를 제거하고 나에게 남겨 둡니다. 테스트 코드는 .NET 코드 (here 참조)를 사용하여 환경 변수로 설정합니다.
"Test Run ID"
$testRunID = [Environment]::GetEnvironmentVariable("CodedUITestRunID", "User")
"Microsoft Test Manager: Export test results"
& "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\TCM.exe" run /export /id:"$testRunID" /resultsfile:"C:\ResultsPath\MyResultsfile.trx" /collection:"http://MyCollection" /teamproject:"Main"
이 단지에서 테스트 실행 ID를 검색합니다
나중에 내가 테스트 실행이 완료 가정하고 (무엇보다도)를 포함하는 스크립트를 실행하는 예약 된 작업이 다음 환경 변수 이전에 설정 한 다음 테스트 실행 ID를 입력하여 Microsoft Test Manager 명령 줄 유틸리티 (tcm.exe)의/export 명령을 실행합니다.
출력 방법이 잘못 되었나요? 정규식 ". + (\ d *)"로 ID를 추출 할 수 있습니다. 그리고 "별도의 PowerShell 스크립트"는 무엇을 의미합니까? 모든 기능이 하나의 세션에서 실행 되었습니까? 마찬가지로 PShell을 열고 스크립트 1을 호출 한 다음 2, 3을 호출합니다. 또는 PShell을 열고 PShell을 닫고 PShell을 닫은 다음 새 PShell을 열고 스크립트 2를 호출합니다. – SpellingD
PowerShell 스크립트가 테스트 실행을 시작한 다음 닫습니다. 한편, 테스트 실행은 원격 환경에서 시작됩니다. 테스트가 끝나면 테스트 결과를 내보내는 스크립트를 실행 한 다음 결과 파일을 읽고 결과를보고하기 위해 이메일을 보냅니다. –
실행이 끝나면 스크립트를 시작한다고 말하기 때문에 테스트 실행이 스크립트 안에 포함되어 있다고 가정하므로 출력을 캡처하고 테스트를 실행하는 데 필요한 ID를 가져 와서 전달해야합니다. 그것을 다음 스크립트로 인수로 사용하십시오. – SpellingD