2015-01-07 3 views
0

Java 프로그램이 있으며 다양한 인수 조합으로 테스트하고 결과를 저장하려고합니다 (System.out.print() 다른 상황에서 어떻게 작동하는지 확인하십시오. 나는 그것을 자동으로 할 길을 찾고있다. 인수는 모두 배열에 넣을 수있는 미리 정의 된 문자열입니다.arguements의 다양한 조합을 자동으로 저장하고 출력을 저장하는 jar 파일을 실행합니다.

for (argument a in argumentArray1) 
    for (argument b in argumentArray2) 
     // more nested loops 
      runAndStoreOutput("java -jar PATH_TO_MY_FILE " + a + " " + b /* + ... */); 

나는 자바에서이 작업을 수행 할 수 있습니다

는 기본적으로이 내가하고 싶은입니까? 해야합니까? 이 작업을 쉽게 수행 할 수있는 응용 프로그램이 있습니까?

+1

이 문제에 대해서는 스크립트 (CMD 또는 셸, 운영 체제에 따라 다름)를 사용하고 JVM 내에서 시작하지 말 것을 제안합니다. – SubOptimal

답변

0

응용 프로그램이 올바르게 작동하는지 주기적으로 확인하려는 경우 Java에서이 작업을 수행하는 것이 좋습니다. 각 변경 또는 각 릴리스 후에. 이 경우 단위 테스트를 작성해야합니다. 이 작업을 원한다면, 응용 프로그램을 테스트해야합니다. 단위 테스트가있는 기본 방법이며 컴파일 된 jar 파일을 다시 테스트하지 마십시오. 이 같은 구글의 구아바를 사용할 수있는 인수의 가능한 모든 조합을 생성하기 위해

:

Set<String> a = Sets.newHashSet("A", "B"); 
Set<String> b = Sets.newHashSet("1", "2"); 
Set<String> c = Sets.newHashSet("#", "+"); 
Set<List<String>> powerSet = Sets.cartesianProduct(a, b, c); // variable-length argument list 
for (List<String> subSet : powerSet) 
    System.out.println(subSet); 

출력 :

[A, 2, +] 
[A, 2, #] 
[A, 1, +] 
[A, 1, #] 
[B, 2, +] 
[B, 2, #] 
[B, 1, +] 
[B, 1, #] 

또는 같은

당신은 카티 대신 설정 전원을 필요로하는 경우 상품 :

Set<String> a = Sets.newHashSet("A", "B", "C"); 
Set<Set<String>> powerSet = Sets.powerSet(a); 
for (Set<String> subSet : powerSet) 
    System.out.println(subSet); 

출력 :

[] 
[A] 
[B] 
[A, B] 
[C] 
[A, C] 
[B, C] 
[A, B, C]