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:そうかもしれないが、イントロディスペンスはあまり役に立たないようだ。実際には、テストケースの名前を知る必要があります。なぜなら、テストケースの名前がパラメータになるレポートを生成したいからです。実際、テストスイートの実行から生成された複数のテストケース情報がレポートに含まれる可能性があります。テストケースの名前が頻繁に変更される可能性は低いので、名前をハードコードする方が良い選択肢です。 –