본문 바로가기

.Net Technology/.NET TDD

(5) NUnit 시작하기 - 환경설정

대부분의 테스트 프레임워크들은 다음과 같은 순서들을 제공한다. 
 
1. 테스트 코드 작성
2. 테스트 실행
3. 결과 확인
4. (옵션) 테스트 코드 수정
 
먼저 테스트 코드를 작성하기 전에 개발환경을 셋팅해야 한다. MSTest는 마이크로소프트에서 제공하는 기본 테스트 툴인데 이 툴을 이용할 경우에는 별다른 셋업이 필요 없지만 NUnit을 비주얼 스튜디오 테스트 창과 연동하기 위해서는 아래의 주소에서 NUnit 테스트 아답터라고 불리는 통합 UI 도구를 다운 받아서 설치해도 되고 Nuget 페키지에서 직접 설치해도 된다. 다시 정리하자면 NUnit이라는 라이브러리와 TestAdapter라는 두개의 프레임워크가 필요하다.
 
- NUnit 테스트 아답터(NUnit Test Adapter)
http://visualstudiogallery.msdn.microsoft.com/6ab922d0-21c0-4f06-ab5f-4ecd1fe7175d
 
필자는 Nuget 페키지에서 모두 셋업 할 예정이기 때문에 별다른 셋팅없이 바로 테스트 프로젝트를 만들어 보도록 하겠다. 이번 도서에서 필자는 비주얼 스튜디오 2013을 이용하지만 비주얼 스튜디오 2012와도 큰 차이 없이 진행할 수 있다. 그럼 먼저 테스트 프로젝트를 하나 생성해 보도록 하겠다. 비주얼 스튜디오에서 [파일]-[새프로젝트] 를 실행한다.
 
[그림3] 테스트 프로젝트 생성
 
새로운 프로젝트가 생성하면 아래와 같은 기본 클래스와 메서드가 작성되어 있을 것이다. 
 
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace UnitTestProject1
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void TestMethod1()
        {

        }
    }
}
[기본 소스코드]
 
위의 TestClass와 TestMethod가 바로 비주얼 스튜디오에서 기본적으로 제공하는 MSTest라는 프레임워크에서 지원하고 있는 기능이다. 여기서 우리는 NUnit이라는 프레임워크를 이용할 것이기 때문에 using Microsoft.VisualStudio.TestTools.UnitTesting 라는 참조 구문은 지워도 무방하다. 
 
자, 그럼 NUnit 도구들을 추가해 보도록 하자. 먼저 NUnit 패키지를 추가하기 위한 두 가지 방법이 존재하는데 Nuget 패키지 관리자를 직접 열어서 찾아서 추가하는 방법이다. 솔루션 탐색기를 열어서 [참조] 에서 [NugetGet 패키지 관리] 메뉴를 선택하자.
 
[그림4] NuGet 페키지 관리 창의 선택
 
Nuget 패키지 관리 창을 열었으면 NUnit으로 검색을 실행해야 하는데 왼쪽에서 [온라인] 메뉴를 선택한 뒤에 오른 쪽 위의 검색창에 NUnit을 검색해 보도록 하자. 그럼 아래 [그림5]와 같은 검색 결과들이 나오게 되는데 여기서 우리는 두 개의 라이브러리를 추가해야 해주어야 한다. 먼저 NUnit 라이브러리를 선택한 뒤에 설치 버튼을 눌러 설치 하도록 하자.
 
[그림5] NUnit 라이브러리 추가하기
 
설치가 완료되면 그 뒤에 NUnit 아답터를 추가하도록 하자. 
 
[그림6] NUnit 테스트 아답터의 설치
 
다시 설명하자면 이 아답터는 실제 비주얼 스튜디오 테스트 창에 NUnit 라이브러리로 테스트된 결과를 연동하여 보여주는 역할을 한다. 이렇게 두 개의 라이브러리를 추가하게 되면 다음과 같은 참조들이 생성된다.
 
[그림7] 참조된 NUnit 라이브러리
 
여기서 가장 위에 있는 Microsoft.VisualStudio.QualityTools.UnitTestFramework는 사용하지 않을 것이기 때문에 없애도 무방하다. 
 
지금까지 Nuget 매니저를 통하여 라이브러리를 참조한 방법 외에도 콘솔 창을 이용해서 단순한 명령어 하나로 쉽게 추가하는 방법이 있는데 한번 살펴보도록 하자. 먼저 콘솔창을 열기 위해서 [도구]-[라이브러리 패키지 관리자]-[패키지 관리자 콘솔]을 실행해보자. 
 
[그림8] 패키지 관리자 콘솔
 
그럼 [그림9]와 같은 콘솔 창이 나오게 되는데 여기서 우리는 아래의 명령어를 통해서 손쉽게 NUnit을 추가하는 것이 가능하다. 
 
install-Package NUnit
NUnit의 설치 명령어
 
Install-Package NUnitTestAdapter
NUnit 아답터의 설치 명령어
 
 
[그림9] 콘솔을 이용하여 라이브러리의 추가
 
 
이렇게 함으로써 아주 간단하게 테스트 환경 셋팅이 마무리 된다. 그럼 이제 기본으로 생성된 코드에서 기본 애트리뷰트 이름을 변경하고 새로운 네임스페이스를 참조하여 보도록 하겠다.
 
using System;
using NUnit.Framework;

namespace UnitTestProject1
{
    [TestFixture]
    public class UnitTest1
    {
        [Test]
        public void TestMethod1()
        {

        }
    }
}
 
위에서 정의된 메서드가 하나의 테스트 요소가 된다. 테스트가 아닌 실제 프로그램에서 작성된 메서드는 하나라고 하더라도 테스트할 요소들은 여러 개가 될 수 있기 때문에 여러 개의 테스트 메서드가 생성될 수 있다. 
그럼 이제 기본 테스트 탐색기를 실행해 보도록 하겠다. 실제 프로그램을 빌드하는 것과 테스트 하는 것은 별개의 작업이다. 테스트를 실행하려면 비주얼 스튜디오 메뉴에서 [테스트]를 선택한 뒤에 [실행] – [모든 테스트]를 선택하면 된다.
 
[그림10] 테스트 실행하기
 
위의 명령을 실행할 경우 테스트 탐색기가 열리면서 아래 [그림9]와 같이 테스트 메서드 이름과 수행시간 그리고 테스트 이름(메서드이름)들이 출력되는 것을 볼 수 있다.
 
[그림11] 테스트 결과 레포트
 
우리는 어떤 코드도 작성하지 않았기 때문에 바로 통과를 진행할 수 있었다. 그럼 이제 본격적으로 NUnit에서 지원하는 기능들을 살펴보도록 하겠다.