我想获取当前在Tcl
脚本中执行的tcltest
test
的名称。例如,下面的代码应该是打印测试的名称:正在执行的tcltest测试的名称
#!/usr/bin/tclsh
package require tcltest
tcltest::test testFunction {} -body {
puts [lindex [info level 0] 0]
set a 1
} -result 1
但是,它提供了以下错误:
==== testFunction FAILED
==== Contents of test case:
puts [lindex [info level 0] 0]
set a 1
---- Test generated error; Return code was: 1
---- Return code should have been one of: 0 2
---- errorInfo: bad level "0"
while executing
"info level 0"
("uplevel" body line 2)
invoked from within
"uplevel 1 $script"
---- errorCode: TCL LOOKUP STACK_LEVEL 0
==== testFunction FAILED
必须有一些基本的错误,我做的,任何帮助对此非常感谢。
用的是什么情况下通过内省得到这个?在我看来,一个好的测试机构不需要知道(在tcltest中有临时文件和目录的其他工具,所以这些命名是不存在问题的)。 –
@DonalFellows:你可能是对的,内省似乎没有多大用处。实际上,测试用例需要知道它的名字,因为我想生成一个报告,其中测试用例的名称将是一个参数,实际上,报告可能包含从测试套件运行生成的多个测试用例信息。由于测试用例的名称不会经常更改(至少对于这个问题至少会改变一次),所以我认为对名称进行硬编码是一个更好的选择。 –