2010-07-14 2 views
1

Visual Studio의 자체 프레임 워크를 사용하여 .NET 프로젝트를 단위 테스트하는 중입니다. 각 테스트는 다음 테스트가 올바르게 실행될 수 있도록 특정 연결을 닫아야합니다. 그러나 테스트가 실패하면이 정리가 수행되지 않으며 결과적으로 모든 후속 테스트가 실패합니다.테스트가 실패했을 때 메서드를 실행하는 방법

테스트가 실패 할 때마다 메소드를 실행할 수있는 방법이 있습니까?

답변

4

[TestCleanUp] 속성으로 장식 된 메서드에 정리 논리를 넣으십시오.

the MSDN for details을 참조하십시오.

+0

어떻게 매개 변수를 이러한 메서드에 전달할 수 있습니까? 또한, 이상적으로 [ClassInitialize] 메서드에서 전역 변수를 정의하고 싶습니다. 그러나 방금 정의한 속성을 볼 수 없습니다. 속성은 [TestCleanUp]에 나타납니다. 어째서? – sbenderli

+1

@sbenderli : 할 수 없습니다. 테스트 엔진에 의해 자동으로 호출되고 호출된다는 점에서 [TestMethod]와 유사합니다. 클래스의 [TestCleanup] 메소드는 각 테스트가 완료된 후 * 정리를 위해 호출됩니다. 마찬가지로, [TestInitialize] 메소드는 각 테스트 전 * 실행되어 테스트 픽스처의 사전 테스트 상태를 설정합니다. – Toby

+1

당신은 할 수 없으며 그렇게해서는 안됩니다. 이 메소드와'TestInitialize'는 테스트 엔진에 의해 자동으로 호출됩니다. 여전히 테스트 픽스처 클래스의 필드를 사용할 수 있습니다. 즉, 클래스에서'_connection' 멤버를 생성하면,'[TestInitialize]'메소드에서 연결을 초기화 한 다음'[TestCleanUp]'메소드에서 연결을 닫습니다. –

관련 문제