0

次のようなものを使用していくつかのPythonスクリプトを実行できるサードパーティのソフトウェアがあります。

software.exe -script pythonscript.py

私の会社は、このソフトウェアと、そのために開発したスクリプトに大きく依存しています。現在、スクリプトの出力をチェックするQAがいくつかありますが、バグを見つけやすくし、テストシステムをより完全にするために、スクリプトの単体テストを開始したいと考えています。

私の問題は、「埋め込まれた」単体テストをどのように実行できるかということです。pydev + eclipseを使用し、リモートデバグを使用して単体テストで機能させるようにしましたが、実際には機能しません。サーバー接続を単体テストに「フィード」させるにはどうすればよいですか?

もう1つのアイデアは、ソフトウェアの標準を解析することですが、それは実際には単体テストではありません...そして、それがもたらす複雑さの追加により、このアプローチはあまり面白くありません。

このようなことはすでにどこかで行われていると思いますので、グーグルで試してみましたが、正しいキーワードを使用していないのかもしれません。誰かが私に出発点を教えてもらえますか?

ありがとうございました

4

3 に答える 3

1

もう少し情報が役立つでしょう。テスト フレームワーク (ユニットテストやノーズなど) を使用していますか? そうでない場合、テストはどのように構成されていますか? とはsoftware.exe?

Python では、単体テストは失敗時に例外を発生させる関数の集まりにすぎないため、他の関数と同様にスクリプトから呼び出すことができます。したがって、理論的には、単純にテスト ランナーを作成し (nose などをまだ使用していない場合)、それを として実行できますsoftware.exe -script runtests.pysoftware.exepydev では、カスタマイズされた Python インタープリターとして設定できます。

問題がsoftware.exestdout を非表示にすることである場合は、代わりに結果をログ ファイルに書き込むだけです。によって提供されたものをモックする環境を作成し、software.exeを使用してテストを実行することもできますpython.exe

于 2012-10-30T11:33:59.743 に答える
0

単体テストがコード用であり、提供される機能用ではない場合、必要に応じてスタンドアロンの Python モック パーツsoftware.exeを使用してテストを実行できます。中間ステップとして、 「software.exe」を使用してベースのスクリプトのsoftware.exe実行を試みることができます。unittest

于 2012-10-30T11:29:58.637 に答える
0

一般的に言えば、ソフトウェアのテストは継続的インテグレーション スイートによって行われます (そしてJenkins、あなたの友人です)。

ここで、スクリプトpythonscript.pyのエントリ ポイントに与える可能性のある環境をエミュレートする Python スクリプト内に test() 関数を設定して、スクリプトをテストする必要があると思います。unittestを使用して、すべてのスクリプトのテスト機能を実行できます。doctests にテストを埋め込むこともできますが、個人的には好きではありません。

そして、 で、software.exeすべての環境の組み合わせをエミュレートしてテストを実行できるようになります。しかし、あなたが多くを語らないので、software.exe私はあなたをこれ以上助けることはできません... (どの言語がsoftware.exe既に単体テストされていますか?)

于 2012-10-30T11:34:16.123 に答える