2016-09-14 2 views
0

tcltest을 사용하여 TCL procs에 대한 간단한 단위 테스트를 작성합니다.
-body 스크립트에서 -setup 스크립트의 변수를 볼 수있는 방법이 있는지 궁금합니다. 어쨌든 upvar/uplevel을 사용하고 있을까요?
은 지금까지 나는 오류가 발생하지 순진한 접근 시도하지 않은 ("읽을 수없는 테스트 파일 오류를"N을 "그런 변수") : tcltest에 -setup-body 스크립트가tcltest -setup 스크립트에서 -body 스크립트로 변수를 전달하십시오.

tcltest::test equal4_test { 
} -setup { 
    set N 4 
} -body { 
    equal4 $N 
} -result 1 
+1

재생산 할 수 없습니다 : 코드가 여기에서 잘 돌아갑니다. 이것은 테스트를 위해 변수를 준비하는 일반적인 방법입니다. 코드에 다른 문제가 있어야합니다. –

답변

1

변수 같은 문맥으로 평가되는 문맥은, 문맥이 문맥과 완전히 같아, tcltest::test를 호출한다. 정의 된 -cleanup 스크립트도 해당 상황에서 평가됩니다. 내부적으로는 Tcl의 uplevel 명령을 사용하여 이것을 시행하고 lots of Tcl의 자체 테스트 스위트이 이에 달려 있기 때문에 작동하는 것으로 확신합니다.

다른 작업이 진행 중입니다. 네임 스페이스에서이 코드를 실행하고 있습니까? 만약 그렇다면, 당신은 아마와 변수를 만들려면 :

variable N 4 

대신 :

set N 4 

는 티클의 (비밀 -에 -이 - 관련) 변수 해상도 규칙의 끔찍한 misfeature을 피하기 위해.

+0

Hehm, 당신 말이 맞아요. 아마도 패키지와 네임 스페이스를 처리하는 방식에 문제가있을 것입니다 ... 나는 실수의 본질을 destille하려고 시도 할 것입니다 ... – damage

관련 문제