2016-09-14 9 views
0

私はtcltestを使用して、私のTCL procsの簡単な単体テストを記述しています。
-bodyスクリプトの中に-setupスクリプトの変数を表示する方法があるのでしょうか?多分upvar/uplevelを何とか使っていますか?
これまでのところ、私は(「テストファイルエラー:読むことはできません 『N』を:そのような変数を」):エラーが発生しない素朴なアプローチを試してみましたtcltest -setupスクリプトから-bodyスクリプトに変数を渡します。

+1

再現できません。コードはここで正常に動作します。これは、テスト用の変数を準備する典型的な方法です。あなたのコードには別の問題があるはずです。 –

答えて

1

変数をtcltest -setup-bodyスクリプトにしています同じコンテキストで評価されます。これは、tcltest::testを呼び出すコンテキストとまったく同じコンテキストです。定義された-cleanupスクリプトも、そのコンテキストで評価されます。内部的には、Tclのuplevelコマンドがこれを強制するために使用され、のTcl自身のテストスイートのがこれに依存しているので、動作することは間違いありません。

何かが続いています。名前空間でこのコードを実行していますか? Tclの(不可解な-で-この-点)可変解像度規則の恐ろしい設計ミスを避けるために

set N 4 

variable N 4 

の代わり:あなたがいる場合は、おそらくで変数を作成します。

+0

Hehm、あなたは正しいと思います。私は、パッケージと名前空間を扱う方法におそらく何か間違っていると思います...私は間違いの本質を解読しようとします... – damage