如何从TCL中的测试文件中获取测试文件的名称

时间:2018-11-06 22:11:13

标签: tcl tk

如何从测试内部获取正在运行测试的测试文件的名称?在检查Google之后,我似乎找不到答案。要澄清:

test mytest-1.1 {
   my test tests ... 
} -body {
    # Command to get name of file we're currently in.
} -result 0

我去获取当前在注释所在的.test文件的名称。

注意:这不是重复的问题,因为我不想要测试的名称,而是想要测试文件的名称。

1 个答案:

答案 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]