2009-07-24 4 views
2

VS2008에서 단위 테스트를 실행하고 명령 줄에서 mstest를 사용하여 동일한 단위 테스트를 실행하는 데 몇 가지 불일치가 발생했습니다.VS2008 내에서 단위 테스트 실행 v 명령 행에서 mstest 사용

내 시나리오가 약간 개선되어 일부 모서리에 충돌했을 가능성이 큽니다. 동일한 데이터 소스에 대해 실행되는 많은 데이터 기반 테스트가 있습니다. 나는 또한 PostSharp를 실험하는 것을 좋아한다. 그래서 PostSharp aspect - TestDataSource을 작성했습니다 - 단위 테스트 메소드가 아닌 단위 테스트 유형에 적용합니다. 유형이 빌드 될 때이 측면은 PostSharp에 유형의 각 단위 테스트 메소드에 DataSource 속성을 첨부하도록 지시합니다.

Reflector에서 빌드 된 어셈블리를 검사하면 실제로 각 테스트 메서드가 올바른 DataSource 특성으로 지정되었음을 알 수 있습니다. 명령 줄에서 mstest를 사용하여 테스트를 실행하면 예상 한대로 작동합니다. 각 테스트는 지정된 데이터 소스에 대해 실행됩니다.

그러나 VS2008에서 정확히 같은 단위 테스트를 실행하면 데이터 원본을 찾지 못합니다. 이는 VS2008이 빌드 된 어셈블리를 무시하고 소스 코드를 살펴본 것처럼 보이지만, 물론 빌드 중에 DataSource 특성이 주입되었으므로 데이터 기반 테스트로 보이지 않습니다.

배포 된 항목에는 문제가 없습니다. 테스트에 DataSource을 수동으로 부착하면 VS2008을 행복하게 실행할 수 있습니다.

아이디어가 있으십니까?

답변

0

테스트에 중단 점을 넣고로드 된 모듈 목록을 검사하면 디버깅중인 어셈블리의 정확한 경로가 무엇인지 확인해야합니다. 그것은 예상 된 것입니까 (bin \ Debug)? 디버거가 실행 중일 때 Reflector를 사용하여이 파일을 열면 PostSharp 내용이 내부에 표시됩니까? 이상한 무엇

은 PostSharp 단위 테스트의 일부가 MSTEST을 위해 작성된 것입니다 그리고 그들은 그것이 MSTEST 단위 테스트이기 때문에로드 어셈블리, 빈 \ 디버그에서하지

+0

... 문제없이 비주얼 스튜디오에서 실행합니다. 전용 배치 디렉토리에 복사됩니다. 그러나 올바른 어셈블리입니다. 디버거가 실행되는 동안 리플렉터로 검사 할 때 각 유닛 테스트 메소드에서 PostSharp가 주입 한 DataSource 속성을 볼 수 있습니다. 중요한지는 모르겠지만 제품은 bin \ Debug에 내장되어 있지 않습니다. 모든 프로젝트가 솔루션 폴더 외부의 단일 통합 bin 디렉토리에 빌드됩니다. DataSource는 특수 특성입니다. PostSharping 해봤습니까? – mark

+0

BTW, PostSharp 포럼에서 스레드를 열어보기를 원하십니까? – mark

+0

PostSharp 포럼을 실제로 모니터하는 것이 더 쉽습니다. MSTest가 적절한 고급 어셈블리를로드하는 것이 확실한 경우 무엇이 잘못 될 수 있는지 알 수 없습니다. –

관련 문제