私はtcltest
を使用して、私のTCL procsの簡単な単体テストを記述しています。
-bodyスクリプトの中に-setupスクリプトの変数を表示する方法があるのでしょうか?多分upvar/uplevelを何とか使っていますか?
これまでのところ、私は(「テストファイルエラー:読むことはできません 『N』を:そのような変数を」):エラーが発生しない素朴なアプローチを試してみましたtcltest -setupスクリプトから-bodyスクリプトに変数を渡します。
0
A
答えて
1
変数をtcltest -setup
と-body
スクリプトにしています同じコンテキストで評価されます。これは、tcltest::test
を呼び出すコンテキストとまったく同じコンテキストです。定義された-cleanup
スクリプトも、そのコンテキストで評価されます。内部的には、Tclのuplevel
コマンドがこれを強制するために使用され、のTcl自身のテストスイートのがこれに依存しているので、動作することは間違いありません。
何かが続いています。名前空間でこのコードを実行していますか? Tclの(不可解な-で-この-点)可変解像度規則の恐ろしい設計ミスを避けるために
set N 4
:
variable N 4
の代わり:あなたがいる場合は、おそらくで変数を作成します。
+0
Hehm、あなたは正しいと思います。私は、パッケージと名前空間を扱う方法におそらく何か間違っていると思います...私は間違いの本質を解読しようとします... – damage
再現できません。コードはここで正常に動作します。これは、テスト用の変数を準備する典型的な方法です。あなたのコードには別の問題があるはずです。 –