您遇到問題。問題是在第一個腳本中,sig
是本地變量,當test
的呼叫終止時消失。之後你無法檢查它。碰巧,test
的結果是分配給sig
的值;我不知道你是否可以指望用於測試目的。如果這是足夠的,你可以這樣做(假設擁有Tcl 8.5,8.4,你需要一個輔助程序,而不是apply
項):
source first.tcl
trace add execution test leave {apply {{cmd code result op} {
# Copy the result of [test] to the global sig variable
global sig
set sig $result
}}}
這攔截(就像用面向方面編程)的結果test
並將其保存到全球sig
變量。儘管它對測試代碼中的問題是正確的:分配給一個變量,該變量立即消失。
如果您正在進行大量測試,請考慮使用tcltest來完成這項工作。這是用來測試的Tcl本身的包,它可以讓你寫的很輕鬆地執行腳本的結果的測試:小
# Setup of test harness
package require tcltest
source first.tcl
# The tests
tcltest::test test-1.1 {check if larger} -body {
test 10
} -result 1
tcltest::test test-1.2 {check if smaller} -body {
test 5
} -result 0
# Produce the final report
tcltest::cleanupTests
謝謝多納爾研究員u能闡述的第一部分更:) –
@made_in_india只有當你給我一些關於哪一部分需要闡述的線索。可能的事情範圍很廣,所以我不能只告訴你一切;太多了!縮小到你真正想要的東西,我會澄清那一部分。 –
研究員:謝謝你,我想趕上$ sig的價值。是否可以跟蹤和應用。你可以舉一個例子來說明問題 –