2011-03-15 2 views
4

유닛 테스트 프로젝트를 .NET 3.5에서 .NET 4.0으로 업그레이드했습니다. 또한 NUnit을 2.5.2에서 2.59로 업그레이드했습니다. 이제 유닛 테스트 시간이 약 50 분이 경과 한 후 약 15 분 내에 완료되었습니다. 이 테스트는 dev server의 JetBrains TeamCity 6.0.2에서 실행됩니다. 아무도 이것이 무엇을 일으킬 수 있는지 알고 있습니까? 일부 개별 테스트에는 최대 8 분이 소요됩니다.업그레이드 후 단위 테스트가 15 분 내에 완료 될 때까지 한시간 후 시간 초과가 실행됩니다.

감사합니다,

제이슨

+2

내 첫 번째 단계는 디버거에서 테스트를 실행할 수 있으며, randomnly 실행이 실속되는 경우의 대략적인 아이디어를 얻을 가끔마다 일시 정지 칠 것입니다. –

+1

테스트를 실행하는 동안 NUnit 테스트 러너를 통해 통계 프로파일 러를 실행할 수 있습니다. 20 분 정도 실행 한 다음 테스트 러너를 죽이십시오. 불행히도 더 이상 유지 관리되지 않는 Nprof (http://code.google.com/p/nprof/)를 사용합니다. .NET 4에서 작동하는지 여부는 알 수 없습니다. –

+0

테스트는 로컬 devbox에서 제대로 실행됩니까 (.net 4.0)? 난 의심. NET 4 귀하의 테스트 서버에 설치되지 않았거나, 그 라인을 따라 뭔가. 어쩌면 예외가보고되지 않을 수 있습니까? – TheSean

답변

0

글쎄, 나는 그것을 알아 냈다. 우리의 도메인 객체 클래스에는 공개 속성에 대한 유효성 검사기 (MS Enterprise Library)가있는 장소가있었습니다. 유효성 검사기는 프로젝트의 리소스 파일에서 키를 참조했습니다. 우리는 유효성 검사기에 존재하지 않는 리소스 키를 가지고있었습니다. 이로 인해 단위 테스트가 시간 초과되는 오류가 발생했습니다. NET 4.0이 더 엄격 해지고있는 것 같습니다. 모든 사람들의 제안에 감사드립니다. - 제이슨 -

+0

TeamCity 유닛 테스트 타임 아웃을 디버그하는 가장 좋은 방법은 빌드 서버에 원격으로 배치하고 동일한 유닛 테스트를 실행하는 것입니다. 대부분의 경우 TeamCity에서 감지 할 수없는 오류가있을 수 있습니다. – Keith

관련 문제