문제

vs2008에서 단위 테스트를 거쳐 Run 또는 Debug를 사용하는 이유는 왜 테스트 프로젝트의 모든 종속성을 재건해야합니까? 즉 단위 테스트에서 테스트하는 프로젝트는 무엇입니까?

때때로 그들은 변하지 않았습니다 - 나는 단지 일부 단위 테스트를 수정했습니다. 또는 어쩌면 나는 어셈블리 중 하나를 수정했지만 모든 조립품을 재건해야한다고 주장합니다.

다른 프로젝트에 대한 단위 테스트 프로젝트에 정상적인 프로젝트 참조가 있습니다.

이것이 우리가 가능한 한 효과적으로 TDD를 수행하는 능력을 늦추고 있기 때문에 감사하게받은 모든 제안을 감사하게 생각합니다.

감사!

도움이 되었습니까?

해결책

좋아, 나는 최소한 문제의 원인과 다소 불안정한 해결 방법을 발견했다 !!

새로운 단위 테스트 프로젝트를 추가하고 주요 솔루션에서 단일 프로젝트 참조를 추가하여 시작했습니다. 내 데이터 (비즈니스 엔티티) 프로젝트가 내가 설명하는 문제로 어려움을 겪고 있으며, 다른 모든 어셈블리가 내 데이터 프로젝트에 의존하기 때문에 한 사람이 다시 컴파일된다는 사실은 다른 모든 것들이 발생한다는 사실을 발견했습니다.

왜 그게 항상 다시 컴파일합니까? 엔티티 프레임 워크와 관련이 있습니다. 빈 프로젝트를 만들고 빈 EF 모델을 추가하십시오. 변경하지 않더라도 항상 다시 컴파일됩니다. 그런 다음 데이터 어셈블리의 메타 데이터가 변경 되었기 때문에 의존성이 재 컴파일을 유발하는 효과가 노크됩니다.

내가 찾은 해결 방법은 프로젝트 참조를 추가하는 것이 아니라 데이터 어셈블리에 대한 직접 어셈블리 참조를 추가하는 것입니다. 단점은 예를 들어 vs2008에서 직접 유형으로 이동하여 정의로 이동할 수 없다는 것입니다. 그러나 특정 어셈블리로 거의 그렇게하지 않는다는 점을 감안할 때 큰 문제는 아닙니다.

이렇게하면 단일 단위 테스트를 약 20 초에서 ~ 7 초로 실행하기 위해 빌드 시간을 줄였습니다. 매일 수십 개의 단위 테스트를 작성할 때 큰 차이를 만듭니다!

EF 모델이 왜이 일을하는지에 대한 아이디어가 있다면 정말로 관심이 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top