====== Run TestSuite ====== ===== 개요 ===== 작성된 TestSuite 클래스나, TestCase 들을 Ant나 Maven 같은 빌드도구를 사용하여 자동으로 수행할 수 있는 방법에 대해 설명한다.\\ 테스트 결과 리포트가 생성되는데, 이는 [[Test Reporting]]에서 자세하게 설명하도록 한다. ===== 설명 ===== 개발자가 단위테스트 클래스인 TestCase를 작성하고 나면, 개별적으로 테스트를 수행하여 결과를 볼 수 있다.\\ 그러나, 일단 코드로 작성된 TestCase들은 빌드도구를 사용하여 자동화된 테스트를 수행할 수 있다.\\ 빌드도구는 Ant와 Maven을 사용할 수 있으며, 이클립스에서는 각각 Ant와 Maven의 Plug-in을 사용하여 GUI 환경에서 테스트할 수 있고, CI 서버에 등록하면 동일한 프로세스를 서버단에서 수행한 뒤 CI 서버에서 리포트를 merge할 수 있도록 XML 파일을 제공할 수 있다.\\ Ant와 Maven 모두 다음과 같은 프로세스로 수행하면 된다. - 테스트하기 위한 스크립트 작성 (Ant - build.xml, Maven - pom.xml) - 이클립스 Plug-in을 이용하여 개발자 환경에서 테스트 수행 - 테스트 결과 XML 리포트 확인((각 빌드도구를 사용하여 테스트를 수행 결과 XML 파일이 생성된다. 빌드 결과의 Raw Data는 **txt, xml** 파일로 저장되며, 파일이 생성될 디렉토리는 설정할 수 있으나, Maven의 경우 디폴트로 **target/surefire-report** 라는 디렉토리 밑에 테스트 결과 파일들이 생성된다.)) - CI 서버에 등록하고, 테스트를 수행하도록 설정 후, CI 서버에 병합된 리포트 확인 ✔ 여기에서는 CI 서버에 등록하고 확인하는 방법에 대해서는 설명하지 않도록 한다.\\ \\ ===== 환경설정 ===== * Ant, Maven Eclipse Plugin 설치 * JUnit Eclipse Plugin 설치 * TestSuite 작성을 위한 라이브러리 추가 (pom.xml) : [[Unit Test 작성을 위한 pom.xml dependency 설정]] 참고 ===== 사용법 ===== ==== Maven을 사용한 테스트 자동화 ==== Maven을 사용하여 개인빌드를 하는 경우, 다음과 같이 테스트를 자동화할 수 있다. - pom.xml 작성 : [[#Test Automation을 위한 pom.xml 설정 샘플 : test]]와 같이 작성한다.\\ - m2eclipse로 테스트 수행 : Run As > Maven test 선택하여 실행한 뒤, Console View에서 **BUILD SUCCESSFUL**을 확인한다. \\ {{:egovframework:dev2:tst:m2eclipse-test.jpg|}}\\ \\ - XML 리포트 확인 : **xml** 항목에 xml, txt를 명시할 수 있으며, **TEST-{TestcaseFullName}.xml** 식의 파일이 생성된다. \\ {{:egovframework:dev2:tst:surefire-reports-lists.png|}}\\ \\ ==== Ant를 사용한 테스트 자동화 ==== Ant를 사용하여 개인빌드를 하는 경우, 다음과 같이 테스트를 자동화할 수 있다. - build.xml 작성 : [[#Test Automation을 위한 build.xml 설정 샘플 : junit]]과 같이 작성한다. - 이클립스에서 테스트 수행\\ - [[이클립스에서 Ant 실행하기|이클립스에서 Ant를 이용하여 target을 수행]]한다. - Console View에서 실행 결과를 확인한다.\\ {{:egovframework:dev2:tst:ant-run-test04.png}}\\ \\ - XML 리포트 확인 : ''junit'' task에서 **''''** 항목에 xml, txt, brief를 설정할 수 있으며, 위의 예에서는 build/junit-reports 디렉토리 밑에 TEST-{TestcaseFullName}.xml 식의 파일이 생성된다. \\ {{:egovframework:dev2:tst:ant-run-test05.png|}}\\ \\ \\ ===== 샘플 ===== Maven과 Ant의 Script의 작성 예는 다음과 같다. ==== Test Automation을 위한 pom.xml 설정 샘플 : test ==== test 수행을 위한 pom.xml 설정 샘플은 다음과 같다.\\ org.apache.maven.plugins maven-surefire-plugin false always xml **/Abstract*.java **/*Test.java ==== Test Automation을 위한 build.xml 설정 샘플 : junit ==== . . . 중략 . . . ===== 참고자료 ===== * Maven Surefire Plugin Home : [[http://maven.apache.org/plugins/maven-surefire-plugin/]] * Maven Surefire Report Plugin Home : [[http://maven.apache.org/plugins/maven-surefire-report-plugin/]] * Ant JUnit Task : [[http://ant.apache.org/manual/OptionalTasks/junit.html]] * Ant JUnit Report Task : [[http://ant.apache.org/manual/OptionalTasks/junitreport.html]]