首页 > 解决方案 > 如何从测试本身获取 TCL 测试的名称

问题描述

我想知道您如何从测试本身中找到您在 tcl 中运行的测试的名称?我在谷歌上找不到这个。

我正在调用另一个 proc 并将调用它的测试的名称作为参数传递。所以我想知道哪个 tcl 命令可以为我做到这一点。

标签: tcltk

解决方案


这不是一个鼓励的用例……但是info frame 1如果您直接在测试中使用它,您可以使用它来获取信息。

proc example {contextTest} {
    puts "Called from $contextTest"
    return ok
}

tcltest::test foo-1.1 {testing the foo} {
    example [lindex [dict get [info frame 1] cmd] 1]
} ok

这假设您使用的是 Tcl 8.5 或更高版本,但 Tcl 8.5 是当前支持的最旧的 Tcl 版本,因此这是一个合理的限制。


推荐阅读