2009-06-29 4 views
2

kshell 스크립트, awk 및 java 프로그램의 조합 인 쉘 스크립트 응용 프로그램을 상속 받았습니다. Java 조각에 대한 JUnit 테스트를 작성했습니다.테스트 자동화 방법 찾기 kshell app

kshell 스크립트 및 awk 프로그램과 유사한 작업을 수행하는 좋은 방법이 있습니까?

나는 JUnit과 System.exec()를 사용하여 스크립트를 호출하는 것을 고려해 봤지만, 더 좋은 방법이 있어야 할 것처럼 보인다.

답변

3

나는 shUnit2을 발견했으며이를 시도 할 것입니다. shUnit

shUnit을 노력의 결과

업데이트가 기대 작품으로. 스크립트 파일은 정의 된 테스트 함수로 작성된 다음 shUnit을 호출하여 작성됩니다.

예 :

#!/bin/sh 
testFileCreated() 
{ 
    TESTFILE=/tmp/testfile.txt 
    # some code that creates the $TESTFILE 
    assertTrue 'Test file missing' "[ -s '${TESTFILE}' ]" 
} 
# load shunit2 
. /path/to/shUnit/shunit2-2.1.5/src/shell/shunit2 

결과

Ran 1 test. 

OK 

'확인'파일이 존재하지 않은 경우 '실패'로 대체 될 것이다.

+0

'shumit2'를'yum'을 사용하여 설치했습니다. 설치 위치를 어떻게 알 수 있습니까? 어느 쪽도 그것을 찾아 낼 수 없다. – Leonid

0

Expect을 시도해보십시오. 대화식 프로그램을 자동화하기 위해 설계되었습니다. 물론 Expect는 TCL의 위에 작성되었는데, 이것은 가려운 스크립트 언어입니다. 그래서 파이썬을위한 인터페이스 (Pexpect)와 더 많은 프로그래머에게 친숙한 다른 언어가 있습니다. 그러나 여전히 유용한 TCL/Expect에 대한 많은 문서가 있습니다.

0

이 질문에 대한 직접적인 대답은 아니지만 간단한 매개 변수를 사용하여 매개 변수가 다른 bash 스크립트를 실행할 수 있습니다. 이 같은 쓰기 예를 들어

: 호출하여

cat >Makefile 

test_all: test1 test2 test3 

test1: 
    script1 -parameter1 -parameter2 

test2: $(addprefix test2file_, $TESTFILES) 
test2file_%: 
    script2 -filename $* 

test3: 
    grep|awk|gawk|sed.... 

'을 만들 test_all'당신은 자동으로 모든 스크립트를 실행하며, 구문은 배우기 너무 어려운 일이 아니다 - 당신은 단지 규칙을 정의해야 name (test1, test_all ...) 및 그와 연관된 명령.