약간 다른 항아리 목록에서 테스트 케이스를 실행하는 방법은 무엇입니까?
문제
동일한 시스템의 약간 다른 버전을 포함하는 JAR 파일 목록이 있습니다.
각 JAR 파일에서 일련의 테스트 케이스를 실행하면서 각 JAR에 대한 결과를 얻을 수 있습니다 (러리 리스너를 통해).
나는 암시 된 클래스 로딩 문제와 약간 혼란스러워합니다.
어떻게 그렇게 할 수 있습니까?
해결책
Ant를 사용하는 경우 Junit 작업은 클래스 경로를 사용합니다.
<target name="test">
<junit ...">
<classpath>
<pathelement path="${test.jar.path}" />
</classpath>
...
</junit>
</target>
Antcall 작업을 사용하여 Test.jar.path 속성에 대한 값이 다른 값으로 테스트 대상을 반복적으로 호출 할 수 있습니다.
다른 팁
항아리가 동일한 인터페이스를 유지하는 경우 다른 버전의 항아리와 함께 매번 다른 클래스 경로로 각 테스트를 실행하기 만하면됩니다.
Eclipse Junit 통합을 사용하는 경우 ClassPath 탭의 각 각각에 N 런 구성 만 작성하십시오. 필요한 항아리를 지정하십시오.
프로그래밍 방식으로하고 싶다면 빈 클래스 경로로 시작하여 사용하는 것이 좋습니다. UrlClassloader, 매번 다른 항아리 세트를 제공합니다.
이 같은:
URLClassloader ucl = new URLClassLoader( list of jars from version1 );
TestCase tc = ucl.loadClass("Your Test Case").newInstance();
tc.runTest();
ucl = new URLClassLoader( list of jars from version2 );
TestCase tc = ucl.loadClass("Your Test Case").newInstance();
tc.runTest();
제휴하지 않습니다 StackOverflow