VS2008에서 단위 테스트를 실행하고 명령 줄에서 mstest를 사용하여 동일한 단위 테스트를 실행하는 데 몇 가지 불일치가 발생했습니다.VS2008 내에서 단위 테스트 실행 v 명령 행에서 mstest 사용
내 시나리오가 약간 개선되어 일부 모서리에 충돌했을 가능성이 큽니다. 동일한 데이터 소스에 대해 실행되는 많은 데이터 기반 테스트가 있습니다. 나는 또한 PostSharp를 실험하는 것을 좋아한다. 그래서 PostSharp aspect - TestDataSource
을 작성했습니다 - 단위 테스트 메소드가 아닌 단위 테스트 유형에 적용합니다. 유형이 빌드 될 때이 측면은 PostSharp에 유형의 각 단위 테스트 메소드에 DataSource
속성을 첨부하도록 지시합니다.
Reflector에서 빌드 된 어셈블리를 검사하면 실제로 각 테스트 메서드가 올바른 DataSource
특성으로 지정되었음을 알 수 있습니다. 명령 줄에서 mstest를 사용하여 테스트를 실행하면 예상 한대로 작동합니다. 각 테스트는 지정된 데이터 소스에 대해 실행됩니다.
그러나 VS2008에서 정확히 같은 단위 테스트를 실행하면 데이터 원본을 찾지 못합니다. 이는 VS2008이 빌드 된 어셈블리를 무시하고 소스 코드를 살펴본 것처럼 보이지만, 물론 빌드 중에 DataSource
특성이 주입되었으므로 데이터 기반 테스트로 보이지 않습니다.
배포 된 항목에는 문제가 없습니다. 테스트에 DataSource
을 수동으로 부착하면 VS2008을 행복하게 실행할 수 있습니다.
아이디어가 있으십니까?
... 문제없이 비주얼 스튜디오에서 실행합니다. 전용 배치 디렉토리에 복사됩니다. 그러나 올바른 어셈블리입니다. 디버거가 실행되는 동안 리플렉터로 검사 할 때 각 유닛 테스트 메소드에서 PostSharp가 주입 한 DataSource 속성을 볼 수 있습니다. 중요한지는 모르겠지만 제품은 bin \ Debug에 내장되어 있지 않습니다. 모든 프로젝트가 솔루션 폴더 외부의 단일 통합 bin 디렉토리에 빌드됩니다. DataSource는 특수 특성입니다. PostSharping 해봤습니까? – mark
BTW, PostSharp 포럼에서 스레드를 열어보기를 원하십니까? – mark
PostSharp 포럼을 실제로 모니터하는 것이 더 쉽습니다. MSTest가 적절한 고급 어셈블리를로드하는 것이 확실한 경우 무엇이 잘못 될 수 있는지 알 수 없습니다. –