2008-10-24 5 views
5

Microsoft 단위 테스트 프레임 워크가 갑자기 중지되었습니다.VSTestHost.exe가 작동을 멈췄습니다. 단위 테스트를 실행할 수 없습니다.

VS2008에서 테스트를 실행하려고하면 "VSTestHost.exe가 작동을 멈췄습니다."라는 메시지가있는 대화 상자가 나타납니다.

모든 업데이트가 적용된 Vista에서 실행되는 Visual Studio Team System 2008 (버전 9.0.30729.1 SP)이 있습니다.

"문제 보고서 및 솔루션"은 "소프트웨어 테스터 용 최신 Visual Studio Team Edition 정품 버전으로 업그레이드"가 적합하지 않음을 나타냅니다.

재부팅을 시도했습니다.
"devenv/resetuserdata"시도했습니다

이들은 차이가 없습니다.

나는이 말도를 바탕으로 MbUnit으로 돌아가고 싶습니다. 그러나 그것은 제 선택이 아닙니다.
해결 방법에 대한 제안 사항이 있으십니까?

답변

7

이것은 대개 무한 루프 또는 순환 참조와 같은 코드의 오류로 인해 발생합니다.

나는 똑같은 문제가있어서 엉망이 된 코드라는 것을 깨달았습니다. 테스트 프레임 워크는 단순히 코드를 스스로 차단함으로써 코드 자체를 보호하고있었습니다.

나를위한 열쇠는 똑같은 것이 두 가지 테스트 프레임 워크에서 발생했다는 것입니다. 그래서 그것은 내 코드가 되어야만했다.

1

내가 물었던 문제를 발견했으며 내 잘못이었습니다. 나는 스택 오버플로를 코딩했다. 나는 확장 메소드에 어떤 코드를 리팩토링하고, 호출 한 Linq 확장 메소드와 일치하도록 이름을 바꾸었다. 그래서 그냥 재귀 적으로 호출했다. 이 배울 수

교훈 :
1 :"select" isn't broken. 나쁜 평판 때문에 프레임 워크를 비난하기에는 너무 빠르다.

2 : 그러나 병리학 적으로 일반적으로 오해의 소지가있는 오류 메시지가있었습니다.

오류 메시지가 좋지 않은 경우 좋은 디버깅 기법은 오류의 원인을 알려주고 오류의 원인을 알려주지 않는 것입니다. 내 경우 SQL 데이터베이스 테스트 (도메인 객체 및 모의 저장소 테스트가 제대로 실행될 수 있음)가 실행되는 것이 "실패한 테스트 실행"이 아니라는 것을 알게 되 자마자 획기적인 결과가 나타났습니다. 실행중인 코드에 대해 뭔가있는 것이어야합니다. 그리고 디버거가 테스트에 참여하게됩니다. 나는 그것이 재앙이 아니었다 고 생각했다.

0

Visual Studio에서 복구를 실행하거나 초기 설정으로 다시 설정해 보았습니까?

출하시 설정으로 재설정하려면 실행 창에서 devenv/ResetSettings를 실행하십시오.

1

VSTestHost.exe가 작동을 멈췄다는 설명의 오류 메시지는 그다지 설명하지 않았지만주의해야합니다. 테스트 결과에는 "테스트 실행이 완료되었습니다"라는 링크가 있습니다 (또는 "테스트 실행에 실패했습니다"라고 말했을 것입니다). 클릭하면 테스트 호스트가 다음과 같은 원인으로 인해 발생한 정확한 오류 메시지를 볼 수 있습니다. fail (스택 오버 플로우 예외).

그들은 그 정보를 묻습니다.하지만 호스트가 충돌하지 않지만 테스트의 일부가 단순히 작동하지 않는 경우 특히 그 링크에서 찾을 수있는 정보를 알아두면 유용합니다.

관련 문제