1

paster create -t pylons1つのコントローラーと一致する機能テストを使用して作成され、を使用して追加されたストックPylonsアプリpaster controllerと、SQLAlchemyテーブルとマップされたORMクラスがあります。SQLAlchemyのものはinit_model()、モジュールスコープではなく関数で定義されます(そしてそこにある必要があります)。

実行python setup.py testすると例外が発生します。これは、同じプロセス内でnose何らかの理由で2回呼び出されるため、既存のモデルを作成しようとしているためです。init_model()

内部のグローバル変数を設定してチェックすることでこれをハック的に修正できますがinit_model()、(a)したくない、(b)モデルを動的に定義するAuthKitなどのサードパーティライブラリもテストに違反し、とても簡単に変更できます。

Pylonsのテストを修正する方法はありますnoseか、それとも独自のテストスクリプトを作成して、、、を直接使用する必要unittestloadappありwebtestますか?これの実例はありますか?

4

1 に答える 1

3

あなたのノーズテストの実行をデバッグしてみます。入れない理由:

import pdb;pdb.set_trace()

関数で、init_model()それがどのように複数回呼び出されるかを確認します。

PDB を実行すると、次のwhereコマンドを使用してスタック トレースを確認できます。

w(here)
Print a stack trace, with the most recent frame at the bottom.
An arrow indicates the "current frame", which determines the
context of most commands.  'bt' is an alias for this command.
于 2009-08-28T00:43:46.507 に答える