문제

나는 설정을 자동화 된 테스트의 테스트 사례에 따라 Fortran 바이너리에서 SVN 저장소,수요,또는 Cron 작업입니다.을 복잡하게 문제는 약간의 테스트 사례가 될 것이 실행에서 컴퓨터 클러스터,그 각각의 테스트 사례 것을 생성할 필요가 PBS 스크립트입니다.(리눅스 환경)

많은 웹 테스트,단위 테스트 솔루션을 밖에,그러나 나는 아무것도 찾을 수 없습에 대한 테스트 바이너리를 직접 있습니다.말 입력을 제공하고,비교하는 출력으로 예상되는 솔루션입니다.

어떤 제안이는 방법에 대해 이 접근?

도움이 되었습니까?

해결책

나도 동의하는 것 이것은 무언가를하는 것은 매우 간단하는 스크립트입니다.하는 방법에 따라 바이너리를 구성하고 어떻게 다른 프로그램은 다른 하나에서,당신은 심지어는 포함한 테스트를 스크립트의 일부로 귀하의 SVN 장합니다.

당신이 배치에서 시스템,당신이 할 수있는 몇 가지 자유를 위한 일정을 테스트합니다.당신이 있어야 할 수 있습니다 일반적인"확인"작업을 제공할 수 있는 설정 매개 변수(예를들면위치의 예상과 실제 프로그램 출력을 출력). 을 사용하여 언급 grep 을 확인하는 출력 qstat 작업에 대한 ID,하지만 당신은 알 수 있습 PBS 을 보유하는 작업을 때까지 다른 작업이 완료됩니다.이 의미는 다음과 같습니다.

...
#PBS -N run_test_1
#PBS -a 200906270000
...
<compile test>
<run test>
<save output>

제출하는 경우,저장 작업 ID 를 반환한 qsub (당신은 어떻게 이것은에 의존 플랫폼-일반적으로 다음과 같습 job_id=$(qsub $JOB_FILE) 충분합니다).그런 다음,플러그인에서 해당 값을 다른 스크립트:

...
#PBS -N verify_test_1
#PBS -W depend=afterany:$job_id
<run comparison>
...

이 것입니다(때 적당한 값 job_id 삽입)보유 테스트의 실행될 때까지 실행 midnight on June27,2009 년,길게 실행의 검증 작업을 때까지 테스트 작업이 완료되면(의 afterany 지시어는 나타내는 그것을 실행한 후 첫 번째 일이지만하면 그것은 성공적인).

에 따라서 클러스터의 처리 시간은,하지만 당신은 수 있는 모든 것이 하나의 스크립트,하지만 여전히 사용할 수 있습 PBS 시간에 기반을 보유 하하에서 실행은 특정 시간입니다.나는 최근에 사용하기 시작하는 파이썬 대신 쉘 스크립트를 처리하도 이 시스템의 관련 작업-테스트 어제 Python 스크립트를 실행하고 추가 PBS 지시어는 똑바로 원본-그것은 작동하는 듯했습니다.

다른 팁

더 사전 포장 된 더 나은 대답이있을 수 있지만, BuildBot은 파이썬 스크립트를 작성하여 이진을 실행할 수있는 한 원하는대로 작동 할 정도로 구성 가능하다고 생각합니다.

http://buildbot.net/

간단한 입력/출력 테스트를 위해서는 스크립트를 제압 하여이 작업을 수행 할 수 있습니다 ...

예를 들어

for each program
    compile
    submit to queue
    wait for finish
    check output

실제로, 당신은 아마도 하나 이상의 직업을 대기열에 제출하고 싶을 것입니다. 그러나 아이디어는 동일합니다.

다음은 각 단계를 수행 할 수있는 방법에 대한 내 머리 꼭대기에서 몇 가지 아이디어입니다.

제출

템플릿 PBS 스크립트를 사용하고 SED를 사용하여 제출하기 전에 프로그램의 입력 값으로 intput 토큰을 찾거나 바꿀 수 있습니다.

마무리를 기다리고 있습니다

작업 ID에 대한 QSTAT의 출력을 반복적으로 grep하여 끝날 때까지 기다릴 수 있습니다.

출력 확인

예상 출력에 대해 작업의 출력 파일을 확인하십시오. 예상 출력을 파일에 저장하고 Diff를 사용하거나 각 실행에 맞는 정규 표현 목록이있을 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top