次の構造のpythonプロジェクトがあります
test/ # unit tests to be run with nosetest
bin/ # utilities written in python to be installed
packagename/ # code for the package
たとえば、次のものbin/python_command
が含まれる場合があります。
@cmdline.command(usage='subcommand1 description')
def cmd_mysubcommand1(opts, args):
'''Code for python_command mysubcommand1'''
if __name__ == '__main__':
cmdline.main('Description of python_command')
ここで、cmdline は、引数とサブコマンドを解析するボイラープレート コードを支援する単なるライブラリです。
問題は、ディレクトリにテストを含めることによってbin/python_command
(cmd_mysubcommand1
特に)のすべてのサブコマンドを単体テストするためのベスト プラクティスと考えられるものは何ですか? test
(つまり、現在の単体テスト スイートに統合する必要があります)。
理想的には、(サブコマンドの解析が適切に機能していることを確認するために) 最終的なサブコマンド機能を具体的にテストするのではなく、各コマンドのテキスト コマンド ラインを提供したいと考えています。
scripttestについて読んだばかりですが、それが unittest python ライブラリとうまく統合されているかどうか、およびサブコマンドで使用されるオブジェクトの一部のモックをサポートしているかどうかはわかりません (これは私にとって必須です)。