如何从测试内部获取正在运行测试的测试文件的名称?在检查Google之后,我似乎找不到答案。要澄清:
test mytest-1.1 {
my test tests ...
} -body {
# Command to get name of file we're currently in.
} -result 0
我去获取当前在注释所在的.test文件的名称。
注意:这不是重复的问题,因为我不想要测试的名称,而是想要测试文件的名称。
答案 0 :(得分:2)
这是对How to get name of TCL test from the test itself中已涵盖内容的略微扩展。研究info frame
documentation,并注意源类型帧的ID Skill Community
3 Public Speaking X
3 IT X
3 Management X
3 ERP X
4 HR NULL
4 Finance NULL
.....
记录:
file
扩展示例:
[dict get $frameInfo file]
为了仅打印出当前最内部评估的(package req tcltest
proc example {} {
for {set i 1} {$i<=[info frame]} {incr i} {
set frameInfo [info frame $i]
set frameType [dict get $frameInfo type]
set cmd [dict get $frameInfo cmd]
if {$frameType eq "source" && [lindex $cmd 0] eq "tcltest::test"} {
puts $frameInfo
puts "Called from [lindex $cmd 1] defined in '[dict get $frameInfo file]'"
return ok
}
}
return notok
}
tcltest::test foo-1.1 {testing the foo} {
example
} ok
')文件,您还可以只调用[info script]
或使用从source
获得的帧信息。测试体。
[info frame 0]