11
myproject/
    bin/
        myscript
    mypackage/
        __init__.py
        core.py
        tests/
            __init__.py
            test_mypackage.py
    setup.py

スクリプト myscript をテストする最良の方法は何ですか?

SO の調査によると、私が見つけた唯一の答えは、test_myscript というテストでテストを作成し、次のようなものを使用することです。

import subprocess

process = subprocess.Popen('myscript arg1 arg2')
print process.communicate()

私のテストケースでは、スクリプトを実行して結果をテストします。より良い方法はありますか?または、さまざまな方法に関する他の提案はありますか?また、テスト スイートを bin/tests または mypackage/tests に配置する必要がありますか?

4

1 に答える 1

1

をどこに置くかについて「ベストプラクティス」があるとは思いませんtestsPython 単体テストはどこに行くのか?

個人的には、あなたのandディレクトリtestsの近くのトップレベルにディレクトリを1つだけ持っています-たとえば、djangoが持っているように。binmypackage

スクリプトを実行binして結果を取得するには、次を使用できます。

  • サブプロセス(あなたが述べたように)、しかし使用check_output

    import subprocess
    output = subprocess.check_output("cat /etc/services", shell=True)
    
  • scripttest モジュール

    • のために設計されましたtest command-line scripts- 仕事のためのツールのように見えます
    • こちらの記事もご覧ください
  • cliとそれはcli.testモジュールです (個人的に使用したことはありません)

それが役立つことを願っています。

于 2013-07-18T21:11:18.587 に答える