0

自動化のためにテストライブラリを再編成しようとしていますが、非常に有望なようです。私の質問は、Pythonオブジェクトをノーズテストに渡すための最良の戦略は何ですか?

私たちのテストは、さまざまなタイプのリクエスト操作を実行する一連のモジュールを備えたtestlibで構成されています。このようなもの:

testlib
\-testmoda
\-testmodb
\-testmodc

場合によっては、テストモジュール(つまり、testmoda)はtest_something()、test_something2()関数に他なりませんが、testmobにtest_anotherthing1()、test_anotherthing2()関数を持つTestModBクラスがある場合もあります。クールなのは、鼻が両方を簡単に見つけられることです。

これらのテスト機能のほとんどは、サーバーファームへの単一の接続を簡単に共有できるリクエストファクトリのものです。したがって、多くのtest_something1(cnn)、TestModB.test_anotherthing2(cnn)などを実行します。

現在、noseは使用していません。代わりに、実行するテストのハードコードされたリストを含む自家製のドライバースクリプトの寄せ集めがあります。これらのドライバスクリプトはそれぞれ、独自の接続オブジェクトを作成します。これらのスクリプトと接続の細目を維持するのは苦痛です。

自分が選んだ接続オブジェクトを渡して、noseの美しい発見機能を自由に活用したいと思います。

前もって感謝します!

ロブ

PS接続オブジェクトはピクルスできません。:(

4

2 に答える 2

0

ファクトリを使用して接続を作成し、関数test_something1()(引数をとらない)にファクトリを使用して接続を取得させることはできますか?

于 2011-02-09T04:35:39.123 に答える
0

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

ただし、Mattが指摘したように、同様の結果を達成するための実行可能な回避策がいくつかあります。

基本的に、これを行います:

  1. データディクショナリをパッケージレベルのグローバルとして設定する
  2. その辞書にカスタムオブジェクトを追加する
  3. いくつかのファクトリ関数を作成して、それらのカスタムオブジェクトを返すか、存在する/適切な場合は新しいオブジェクトを作成します
  4. 工場出荷時に使用するために、既存のtestlib \testmod*モジュールをリファクタリングします
于 2011-02-14T15:22:17.467 に答える