2014-01-09 3 views
6

이 주제를 검색했지만 단계별로 좋은 정보를 찾지 못했습니다. 그래서 그것을 연구하고 공유했습니다. 다음은 쉬운 해결책입니다. 파일이 모두 포함프로그래밍 방식으로 trx 파일을 생성하는 방법은 무엇입니까?

xsd.exe/클래스

을 vstst.xsd (가) vstst.cs을 결과

:

+0

여기에 귀하의 질문에 대한 답변을 작성해 주시고 (심지어 귀하의 답변을 수락하기까지), 위의 질문과 같은 표준 질문 - 답변 형식을 존중 해 주시고 답변을 아래의 답변 블록에서 공식화하십시오. – fvu

+0

상기시켜 줘서 고마워. 하나의 새 계정으로 8 시간마다 내 질문에 대답 할 수 없습니다. 나중에 다시 고칠 것입니다. – kongkongt

+0

생성 된 TestResults 파일의 샘플을이 질문에 추가 할 수 있습니까? –

답변

6

.cs 파일을 생성 xsd.exe를 사용하십시오으로 VisualStudio 설치에 vstst.xsd 파일을 찾습니다 trx 파일의 모든 필드/요소를 정의하는 클래스.

당신은 TRX 파일에 일부 필드를 알아 보려면이 링크를 사용할 수 있습니다 http://blogs.msdn.com/b/dhopton/archive/2008/06/12/helpful-internals-of-trx-and-vsmdi-files.aspx

당신은 또한 필드를 배울 수있는 MSTEST 실행에서 생성 된 기존 TRX 파일을 사용할 수 있습니다.

과 trst 파일에 대한 지식이 있으면 다음과 같은 코드를 작성하여 trx 파일을 생성 할 수 있습니다. 당신이 GenericTestType 및 PlainTextManualTestType (BaseTestType에서 파생 된 둘 다)와 같은 "항목"필드에 (때문에) 상속 문제에서 InvalidOperationException을받을 수 있습니다

TestRunType testRun = new TestRunType(); 
ResultsType results = new ResultsType(); 
List<UnitTestResultType> unitResults = new List<UnitTestResultType>(); 
var unitTestResult = new UnitTestResultType(); 
unitTestResult.outcome = "passed"; 
unitResults.Add(unitTestResult); 

unitTestResult = new UnitTestResultType(); 
unitTestResult.outcome = "failed"; 
unitResults.Add(unitTestResult); 

results.Items = unitResults.ToArray(); 
results.ItemsElementName = new ItemsChoiceType3[2]; 
results.ItemsElementName[0] = ItemsChoiceType3.UnitTestResult; 
results.ItemsElementName[1] = ItemsChoiceType3.UnitTestResult; 

List<ResultsType> resultsList = new List<ResultsType>(); 
resultsList.Add(results); 
testRun.Items = resultsList.ToArray(); 

XmlSerializer x = new XmlSerializer(testRun.GetType()); 
x.Serialize(Console.Out, testRun); 

참고. 인터넷 검색으로 해결해야합니다. 기본적으로 모든 "Items"정의를 BaseTestType에 넣습니다. 다음 링크는 다음과 같습니다 TestRunType의 직렬화가

가 TRX 파일은 VS에서 열 수 있도록 예외를 던지는 TestLists, TestEntries, TestDefinitions 및 결과를 포함하여 넣어 필요가 일부 필드가 있습니다. 몇 가지 지침을 연결해야합니다. 기존의 trx 파일을 살펴보면 알아 내기가 어렵지 않습니다.

행운을 빈다.

관련 문제