正在执行的tcltest测试的名称

时间:2017-09-05 19:19:06

标签: unit-testing scripting tcl stack-trace

我想获取当前正在tcltest脚本中执行的test Tcl的名称。例如,以下代码应该打印测试的名称:

#!/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

我一定有一些基本的错误,对此的任何帮助都非常感谢。

2 个答案:

答案 0 :(得分:0)

我无法找到任何这样的内省(看起来不是很难)。我确实看过,因为我想记录运行测试并标记从一个测试到另一个测试的过渡。

当然,没有什么可以阻止你知道测试名称。

   yesClicked(eventName:any){
    if(eventName=='Yes')
        {
            this.wordDocument.yesclicked();
        }
        else if(eventName =='No')
            {

                this.wordDocument.Noclicked();
            }
}

    yesclicked()
    {   
     Word.run(function (context) {
     var body = context.document.body;
     body.insertParagraph('Content of a new paragraph', 
     Word.InsertLocation.end);
      return context.sync().then(function () {
    console.log('Paragraph added at the end of the document body.');
      });  
     })   
     .catch(function (error) {
   console.log('Error: ' + JSON.stringify(error));
  if (error instanceof OfficeExtension.Error) {
    console.log('Debug info: ' + JSON.stringify(error.debugInfo));
   }
 });

 }

(这是即兴的代码,不是我实际使用的代码,但它经过一次测试,至少可以运行。)

文档: create (method of oo::class)incrmethod (object configuration subcommand)namespaceoo::objdefineoo::objectpackageprocputsreturnsettcltest (package)variable (object slot subcommand)variable

答案 1 :(得分:0)

我知道这个问题发布已经有一段时间了。

因为/如果仅在报告中需要输出而不在TCL环境中将其作为变量使用,也许用'-verbose start'配置tcltest也可以吗? ()

示例:

% package require tcltest
2.4.1
% ::tcltest::verbose start
start
% ::tcltest::test the_test {} -body { return 1 } -result 1
---- the_test start
% ::tcltest::verbose "start pass"
start pass
% ::tcltest::test the_test {} -body { return 1 } -result 1
---- the_test start
++++ the_test PASSED