2011-02-09 10 views
0

私は、オートメーションと鼻のテストライブラリを再編成しようとしています。本当に有望です。私の質問は、Pythonオブジェクトを鼻検査に渡すための最善の戦略は何ですか?カスタムPythonオブジェクトをnosetestsに渡す

私たちのテストは、さまざまなタイプのリクエスト操作を実行するモジュールをまとめたtestlibで構成されています。このような何か:いくつかのケースでは

testlib 
\-testmoda 
\-testmodb 
\-testmodc 

テストモジュール(すなわちtestmoda)いくつかのケースでは、我々は(test_anotherthing1でtestmobでTestModBクラスを持っていながら、test_something何も()、test_something2()関数ではありません)、test_anotherthing2 () 機能。クールなことは、鼻が簡単に両方を見つけることです。

これらのテスト機能のほとんどは、サーバーファームとの単一の接続を簡単に共有できるリクエストファクトリです。

現在、私たちは鼻を使用していません。代わりに、ハードコードされたテストリストを持つ自家製のドライバスクリプトを用意しています(訳注:実行する。これらのドライバスクリプトは、それぞれ独自の接続オブジェクトを作成します。これらのスクリプトと接続の細目を維持するのは苦しいです。

私は自分の選択した接続オブジェクトを渡して、鼻の美しい発見機能を利用したいと考えています。

ありがとうございます!

ロブ

P.S.接続オブジェクトはpickle-ableではありません。 :(

答えて

0

あなたは(引数を取らない)機能test_something1()を持って、その後、接続を作成し、工場を使用することができ、接続を取得するために工場を使うのか?

+0

これは私が検討したアプローチの1つですが、工場への呼び出しのたびに新しい一意の接続が作成されます。理想的には、私は単一の接続オブジェクトを構築し、それを鼻に渡したいと思います。 – Rob

+0

工場に共通(共有)接続を返すようにしたい場合は、簡単に行うことができます。 –

+0

@Matt - 素晴らしい。私がdesciptionで指摘した構造を使って、何をお勧めしますか?モジュールの中には十分なスペースがありますが、nosetests.exeを起動するときに、すべてのtestlibモジュールにグローバル接続を1つずつ共有するにはどうすればいいですか?私はまだPythonの初心者で、基本的なものはここにありません。 – Rob

0

私の知る限り、する簡単な方法はありません。。単に鼻にカスタムオブジェクトを渡す

をしかし、マットは、同様の結果を達成するために、いくつかの実行可能な回避策があります指摘したように基本的に

を、次の操作を行います。

  1. セットアップ適し
  2. は、その辞書
  3. これらのカスタムオブジェクトを返すか、またはそれらが存在している場合は、新しいものを作成するために、いくつかのファクトリ関数を作成するために、カスタムオブジェクトを追加グローバルパッケージレベルとしてデータ・ディクショナリ/
  4. リファクタリング既存のTESTLIBの\ testmod *モジュールを使用して工場を使用する
関連する問題