2014-12-05 7 views
1

요즘에는 단위 테스트 도구에서 이상한 일들이 있습니다.단위 테스트를 실행할 때 이상한 행동 NancyFx의 Fluentvalidation

NancyFX에서 만든 REST API가 있습니다. 최근에 FluentValidation을 사용하여 새로운 스타일의 유효성 검사를 구현하기 시작했습니다.

내 테스트 제품군에는 현재 약 1000 개의 테스트가 있으며이 중 첫 번째 Fluent Validation 테스트가 약 10 개 있습니다. 이것은 이상한 곳입니다. 이 테스트를 작성하면서 모든 것이 잘되었습니다. 그러나 모든 테스트 스위트를 실행하자마자 Fluent Validation 테스트가 모두 실패했습니다.

"No model validator factory could be located. Please ensure that you have an appropriate validation package installed, such as one of the Nancy.Validation packages." 

을하지만 어셈블리 내 테스트 라이브러리에서 참조되고 내가 스스로 테스트를 실행할 때 그들은 잘 작동하고 녹색 : 나는 오류 보았을 때

그것은 나에게 말했다.

나는 Resharper 테스트 러너를 사용합니다. Thr 유효성 검사기는 BindAndValidate를 사용하여 호출되며 nancy 테스트 브라우저에서 엔드 포인트를 호출합니다.

이상한 행동의 다음 비트는 이러한 테스트가 Team City에서 제대로 실행된다는 것입니다.

나는 손실에 처해있다. 그 어셈블리 참조를 해결할 수없는 이유를 알 수 없습니다.

답변

0

여기서 일어난 일은 두 가지 테스트 프로젝트가 있다는 것입니다. 하나는 통합 테스트 용이고 다른 하나는 단위 테스트 용입니다. 분명히 단위 테스트 프로젝트는 또한 테스트 브라우저 객체를 인스턴스화합니다. 누군가가 브라우저 객체를 사용했고 본질적으로 통합 테스트를 유닛 테스트 프로젝트에 적용했다는 것을 알지 못했습니다.

단위 테스트 프로젝트는 통합 테스트 전에 테스트를 실행했습니다. 단위 테스트 프로젝트에는 FluentValidation DLL에 대한 참조가 없었기 때문에 TinyIOC 컨테이너는 유효성 검사 클래스를 선택하지 않았습니다. 단위 테스트 프로젝트는 BindAndValidation 경로를 호출하지 않았으므로 문제는 아니었지만 통합 테스트가 실행되면 문제가 발생했습니다.

그래서 내가 본 것은 실제로 문제가 아니라 증상이었습니다.