tcl - 如何从测试本身获取 TCL 测试的名称
问题描述
我想知道您如何从测试本身中找到您在 tcl 中运行的测试的名称?我在谷歌上找不到这个。
我正在调用另一个 proc 并将调用它的测试的名称作为参数传递。所以我想知道哪个 tcl 命令可以为我做到这一点。
解决方案
这不是一个鼓励的用例……但是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 版本,因此这是一个合理的限制。
推荐阅读
- list - 在 Dart 中,`List.unmodifiable` 是创建一个不可修改的视图,还是一个全新的独立列表?
- python - 如何修复 tensorflow.tools.api.generator.api.contrib' 没有 'layers' 成员?
- java - 如何将 mouseClicked() 与不规则对象一起使用
- haskell - 推断 lambda 表达式的类型
- php - 用于 json 字符串的多级 php 数组。输出错误
- php - PHP邮件功能不会发送到雅虎
- c++ - CMake - 在 Windows 上链接 exe
- c# - 在进入 Application.Run() 之后,如何强制调试器跳过方法及其调用的任何内容?
- c++ - 函数 new char[size] vs char[size] 上的动态内存
- ios - 无法在物理设备上获取联系人-iOS