2010-03-04 7 views
4

그래서 Unit Tests를 실행할 때 VisualStudio 2008에서 여러 가지 흥미로운 문제가 발생했습니다.Visual Studio Unit Tests를 실행하고 ReSharper Unit Tests를 실행합니까?

Visual Studio Unit Test를 실행하는 경우 일부 테스트가 함께 실패하지만 개별적으로 실행됩니다. 이 테스트 클래스의 일부 클래스 수준 변수가 단위 테스트에서 다시 사용되기 때문에 이러한 상황이 발생합니다.

지금은 일반적으로 각 클래스에 들어가서 수동으로이 문제를 해결합니다. 그러나 우리는 수천 개의 테스트 범위에 대해 이야기하고 있습니다!

이제 ReSharper Unit Tests와 TFS BuildServer를 함께 사용하여 흥미로운 딜레마가 발생합니다.

VS 장치 테스트 솔루션을 동일한 방식으로 실행하도록 구성 할 수있는 방법이 있습니까? [TestCleanup] 메서드에서 [TestInitialize] 메서드를 호출하지 않도록합니다.

답변

4

이것은 대개 순서가 다른 테스트의 부산물입니다. ReSharper 4.x 및 이전 버전에서는 소스 파일에 나타나는 순서에 따라 단위 테스트를 실행합니다. 거의 모든 다른 단위 테스트 주자는 알파벳 순서로 테스트를 실행합니다. 이 다른 정렬은 테스트가 통과하는지 또는 실패하는지 (데이터베이스 또는 통계의 잔존 데이터를 기반으로) 영향을 미칠 수 있습니다.

ReSharper 5.0은 사용자 지정 러를 더 이상 사용하지 않으므로 이러한 불일치를 수정해야합니다.

그러나 이러한 유형의 불일치는 테스트에서 문제가 있음을 나타냅니다. 일부는 정리해야 할 데이터를 남겨두고 일부는 이전 테스트에서 남겨진 데이터에 의존하거나 상처를 입습니다.

+0

알아두면 좋을 것. 이 문제를 해결하는 방법에 대한 제안이 있으십니까 :) 나는 [TestCleanup]에서 [TestInitialize]를 거의 호출하고자하는 시점에 있습니다. – Andrew

관련 문제