2016-08-04 4 views
0

저는 명령 행에서 Pex를 사용하여 테스트 사례 생성을위한 입력 값을 찾습니다. PexObserve를 사용하여 실행 중에 특정 값을 기록합니다. 기록하려는 값 중 하나가 XML 문자열입니다.PexObserve는 255 자까지만 기록합니다.

그러나 XML을 구문 분석 할 때 "잘못된 XML"예외가 발생합니다. Pex는 처음 255 자만 로그에 씁니다.

전체 XML 문자열을 기록하는 방법이 있습니까? 또는 PexObserve가 다른 유형을 가지고있어 더 긴 텍스트를 녹음 할 수 있습니까?

답변

0

누군가가 어느 시점에서든 동일한 문제가있는 경우 여기에서 나가십시오. 나는 나를 도운 해결책을 찾았습니다.

불행히도 255 자 제한은 내부적으로 static readonly 개의 필드에 설정됩니다. 따라서 리플렉션을 사용해야했습니다. 내 솔루션은 PUT에 다음 줄을 포함하여 작동합니다

typeof(Microsoft.Pex.Framework.PexObserve.ValueWriterManager).GetField("MaxWrittenElements").SetValue(null, 1000); 

당신이 원하는 값으로 1000를 교체합니다.

그러나이 방법은 빠른 해결 방법이며 사용자에게 적합하지 않을 수 있습니다. 원치 않는 부작용이있을 수 있습니다. 또한, 작성된 List 요소의 수와 다른 것들을 변경하고 있습니다.