어셈블리로드 문제를 디버깅합니다
-
05-09-2019 - |
문제
단위 테스트 중에 나에게 매우 이상한 문제가 발생합니다 (Visual Studio의 MSTEST -.NET 3.5 SP1) :
- "솔루션에서 모든 테스트 실행"을 클릭합니다.
- 모든 테스트가 통과하고 제외하고 모든 테스트가 다음과 같은 예외를 던지는 하나의 특정 클래스의 경우 "System.io.fileloadexception :이 어셈블리를로드하면 다른 인스턴스와는 다른 보조금 세트가 생성됩니다 (HRESULT의 예외 : 0x80131401)."
- 그런 다음 가서 수업에서 중단 점을 설정했습니다. 결과 : 클래스의 모든 테스트가 통과됩니다 (이전에 실패한 것과 동일한 테스트).
- "솔루션에서 모든 테스트 실행"을 클릭합니다. 모든 테스트는 제외하고 통과합니다 또 다른 수업.
- 나는 수업에서 중단 점을 설정한다. 결과 : 수업의 모든 테스트가 통과됩니다
- "솔루션에서 모든 테스트 실행"을 클릭합니다. 첫 번째 테스트 클래스를 제외한 모든 테스트가 통과됩니다.
- 등.
보시다시피 문제는 매우 일관성이 없어 디버깅하기가 어렵습니다.
Fusion Log Viewer를 사용해 보았지만 이해하지 못하는 혼란스러운 결과를 얻었습니다.
무엇을 찾고 있어야합니까? 다른 사람 이이 문제를 경험 했습니까?
업데이트:추가 정보가 요청되었습니다.
테스트는 몇 달 동안 잘 실행되었습니다. 지난번에 그들을 달렸을 때 목요일이었다고 생각합니다. 나는 소스 제어 기록을 검토하여 무언가가 바뀌 었는지, 평범한 곳에서는 아무것도 없는지 확인하려고 노력했습니다.
나는 다른 날에 다른 날에 프로젝트를 추적하고 확인할 수 있었지만, 우리는 시각적 소스 안전을 사용하고 있습니다 (나는 알고 있습니다 - 내 하강이 아닙니다 :-() 주저하고 있습니다.
테스트는 정기적 인 단위 테스트이며 Mock -Objects에 MOQ를 사용하고 있지만 최근까지 잘 작동했습니다.
이 문제를 디버깅하는 방법에 대한 조언을 기대하고있었습니다.
해결책
우리는이 문제도 발생했지만, 빌드 서버에서만 발생했지만 (MSBuild와 함께 MSTEST를 사용하기 위해 VS2008이 설치되어 있음) 로컬에서만 발생했습니다. 우리는 설치했다 이 핫픽스 빌드 서버의 vs2008 버전 에서이 문제를 제거했습니다.
다른 팁
분명히 그것은 버그입니다. 의심 할 여지없이 당신은 이미 이것을 찾았지만 만일을 대비하여 여기에 링크가 있습니다.
http://connect.microsoft.com/visualstudio/feedback/viewfeedback.aspx?feedbackid=95157
도움이되기를 바랍니다.
여기에 설명 된 문제는 내 컴퓨터에서만 발생합니다. VS2008 설정을 제거하고 모든 추가 기능을 비활성화하고 다른 위치에서 프로젝트를 확인했지만 효과가 없었습니다. 지금 당장 기계의 개혁 전 가능한 해결책은 vs2008을 다시 설치하고 있는데, 지금은 시간이 없기 때문에 지금은 문제와 함께 살아야 할 것입니다.