카테고리 없음

Silverlight Code Coverage

wafe 2009. 4. 9. 10:42

Silverlight용 Unit Testing Framework는 Jeff Wilcox의 Microsoft Silverlight Unit Test Framework이 제일 유명하다.

Visual Studio Team System Developer Edition 에서는 "코드 검사"라는 기능을 통해서 유닛 테스트 실행 후 커버리지를 보여주는 기능을 포함하고 있다. 그런데 이것은 닷넷 어플리케이션에만 적용되고, Silverlight 어플리케이션에서는 쓸 수 없다.

Silverlight는 보안을 위해서 별도의 분리된 환경에서 실행되므로, NCover등이 사용하는 기존의 방식으로는 커버리지를 측정할 수 없다고 한다. (어떤 방식인지 찾아보면 재미있을 듯) 즉, Silverlight 어플리케이션의 유닛 테스트에서 코드 커버리지를 측정하기 위해서는 유닛 테스팅 툴과 연계된 커버리지 툴을 쓰는 것이 가장 좋을 것이다.

MS Silverlight Unit Test Fx 문서를 보면 CodeCoverage라는 클래스가 정의되어 있어서 소스까지 들여다봤는데 결국 얻은 것은 아직 구현되지 않은 미래를 위한 기능이라는 것이었다.

아예 SilverUnit 이라는 다른 테스트 프레임워크를 쓰면 커버리지를 보는 것이 가능할 것 같기는 하다. Typemock Isolator 라는 걸 쓰면 특정 프레임워크(WPF나 Silverlight, SharePoint 등)에 종속적인 부분을 런타임에 대체해버려서 의존성을 제거할 수 있는 것 같다. 그렇게 의존성을 제거하면 일반 닷넷 환경에서 테스트를 돌릴 수 있는 듯. 그걸 기반으로 해서 Silverlight를 테스트하라고 만들어놓은 프레임워크 인 거 같은데, 무료로 제공되긴 하지만 정작 Isolator는 가격이 상당해서 포기해버렸다.

결론은 MS Silverlight Unit Test Framework에서 커버리지 기능이 구현될 때까지는 그냥 기다리자는 것.