====== Write TestSuit ====== ===== 개요 ===== Test Automation을 위해 기존에 작성된 다수의 TestCase 들을 몇 개 그룹으로 묶는 방법을 설명한다. ===== 설명 ===== **TestSuite**은 __개발자가 작성한 다수의 TestCase를 그룹으로 묶거나 모아서 한꺼번에 테스트를 수행할 수 있도록 JUnit 3.8에서 제공하던 클래스__이다.\\ JUnit4에서는 TestSuite 클래스를 더이상 지원하지 않으며, 단지 __다수의 TestCase를 특징에 따라 한꺼번에 수행할 수 있도록 그룹으로 묶는 개념__으로 생각하는 것이 좋겠다.\\ 따라서, JUnit3.8에서는 TestSuite Class를 작성하곤 했지만, JUnit4에서는 작성할 수는 있지만 잘 쓰지 않고, 빌드도구를 사용하는 방법을 많이 사용한다.\\ \\ ✔ TestSuite을 작성하는 경우는 보통 기존 TestCase를 그룹핑하고자 하는 경우이며, Unit Test를 넘어 Integration Test까지 가는 경우, 그룹핑 뿐 아니라 TestCase 간의 Dependency를 설정하고자 할 때 쓰이게 된다. 따라서, Unit Test까지만 작성하고 테스트하는 경우에는 TestSuite으로 따로 묶지 않는 경우가 많다. [[http://testng.org/|TestNG]]라는 툴에서는 Integration Test를 위해 TestCase 간의 의존성이나 순서, 그룹으로 묶기 등의 기능을 제공한다. ===== 환경설정 ===== * JUnit Eclipse Plugin 설치 * TestSuite 작성을 위한 라이브러리 추가 (pom.xml) : [[Unit Test 작성을 위한 pom.xml dependency 설정]] 참고 ===== 사용법 ===== TestSuite을 작성하는 방법은 다음과 같이 2가지가 있다. ==== TestSuite Class 작성 ==== JUnit4에서 TestSuite을 작성하는 방법은 다음과 같다.\\ \\ - Eclipse에서 일반 Java Class를 생성한다.((New > Others... > JUnit Test Suite 을 선택하면 JUnit3 버전의 TestSuite이 생성된다.)) - 기존에 작성된 TestCase Class 목록을 다음과 같이 입력한다. \\ \\ {{:egovframework:dev2:tst:testsuite001.png|}}\\ \\ - 작성이 완료되면 [[test_case#test_case_실행|Test Case 실행]] 방법과 동일하게 테스트한다. \\ 다음 그림과 같이 TestSuite을 수행하면, 여러 개의 TestCase가 한꺼번에 순차적으로 수행된다. \\ \\ {{:egovframework:dev2:tst:run_testsuite02.png|}} ✔ TestSuite을 작성하는 경우는 보통 기존 TestCase를 그룹핑하고자 하는 경우이며, Unit Test를 넘어 Integration Test까지 가는 경우, 그룹핑 뿐 아니라 TestCase 간의 Dependency를 설정하고자 할 때 쓰이게 된다. 따라서, Unit Test까지만 작성하고 테스트하는 경우에는 TestSuite 클래스를 따로 작성하지 않는 경우가 많다.\\ \\ ==== 빌드도구로 TestSuite 작성 ==== 빌드도구에서 수행할 테스트케이스를 지정하여 Test Suite을 구성할 수 있다.\\ * **Maven - pom.xml** : [[#Maven에서 Test Suite 작성 샘플]] 참조 * **Ant - build.xml** : [[#Ant에서 Test Suite 작성 샘플]]과 같이 junit task에 를 이용하여 테스트 대상을 그룹핑할 수 있다. ===== 샘플 ===== ==== TestSuite class 작성 샘플 ==== @RunWith(Suite.class) @SuiteClasses( { HttpRequestMockTest.class, SessionMockTest.class, FileUploadMockTest.class, EmailMockTest.class, JDBCMockTest.class }) public class MockTestSuite { } ==== Maven에서 Test Suite 작성 샘플 ==== org.apache.maven.plugins maven-surefire-plugin . . . **/Abstract*.java **/*Test.java ==== Ant에서 Test Suite 작성 샘플 ==== . . . 중략 . . . ===== 참고자료 ===== * JUnit Home : [[http://junit.org/]] * JUnit FAQ : [[http://junit.sourceforge.net/doc/faq/faq.htm]] * Maven Surefire Plugin : [[http://maven.apache.org/plugins/maven-surefire-plugin/]]