2012-06-13 3 views
0

for 루프에서 명령 (테스트 사례)을 실행하고 있습니다. 테스트 단계에서 테스트 단계가 실패하면 나머지 테스트 단계를 중단하고 종료합니다. 이 때문에 내 for 루프도 중간에 나옵니다. 테스트가 어떻게 작동하는지 제어 할 수는 없지만 나머지 테스트 케이스에서는 for 루프를 계속 실행하려고합니다. 이것을 어떻게 할 수 있습니까? 지금은 테스트를 실행하는 데 사용되는 명령에 대한 반환 값이 없습니다.루프 내에서 명령이 종료 된 후에도 계속 루프를 계속합니다.

업데이트 : 안녕하세요. 답장을 보내 주셔서 감사합니다. 미안하지만 코드를 일찍 게시해야했습니다. 여기에 그것은 ... 셸 스크립트로 작성했습니다 :

for file in `ls *.xml`; do 
    testrunner.sh -j -a -f"output" $file 
done 

나는 여러분이 올린 제안을 시도하고 내 의견을 게시 할 것입니다. 감사합니다

+5

코드? 나, 일부 게시. – kindall

+1

루프에 게시 하시겠습니까? 또한'set -e'는 어디에서나 사용할 수 있습니까? 그것은 이런 종류의 일에 대한 일반적인 범인입니다. – zebediah49

+0

이것은 파이썬 for 루프인가, 쉘 for 루프인가? 산탄 총 (scattergun) 태깅과 결합 된 막연한 설명은이 질문을 매우 어렵게 만듭니다. – Ben

답변

0

아마 실패한 테스트에서 예외가 제기되고 있습니다. 예외가 작동하는 방법을 배우고 테스트 코드 주위에 try: 블록을 넣어 예외를 잡아 내고 스크립트를 계속 허용해야합니다.

다음 웹 페이지는 공부를 할 수있다 : http://www.penzilla.net/tutorials/python/exceptions/

1

당신이 일반적인 종료 무엇을 의미합니까? 예외를 던질 것이라는 뜻인 경우 continuetryexcept 블록 내에 사용하면 Exception 후에 for 루프를 계속 사용할 수 있습니다.

예 :이 코드는 i=4에서 제기 오류가있는 경우에도 (1 ~ 9)를 출력한다

for i in range(1,10): 
    print i 
    try: 
    if i == 4: 
     raise NameError 
    except NameError: 
    continue 

. 희망이 도움이됩니다.

관련 문제