簡體   English   中英

測試python包bin腳本的最佳實踐

[英]Testing python package bin scripts best practice

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中嗎?

我不相信有關於在何處進行tests “最佳實踐”。 看看有多少不同的意見: Python單元測試在哪里?

我個人有一個唯一的tests目錄在頂層,靠近你的binmypackage目錄 - 例如, django有。

要運行bin腳本並獲取結果,您可以使用:

  • check_output (正如你所提到的),但使用check_output

     import subprocess output = subprocess.check_output("cat /etc/services", shell=True) 
  • scripttest模塊

    • 旨在test command-line scripts - 看起來像工作的工具
    • 也看到這篇文章
  • cli和它的cli.test模塊(以前從未使用過)

希望有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM