测试python包bin脚本的最佳实践

vov*_*vel 11 python testing

myproject/
    bin/
        myscript
    mypackage/
        __init__.py
        core.py
        tests/
            __init__.py
            test_mypackage.py
    setup.py
Run Code Online (Sandbox Code Playgroud)

测试脚本myscript的最佳方法是什么?

从SO研究来看,似乎我发现的唯一答案是在测试中编写一个名为test_myscript的测试,并使用像

import subprocess

process = subprocess.Popen('myscript arg1 arg2')
print process.communicate()
Run Code Online (Sandbox Code Playgroud)

在我的测试用例中运行脚本然后测试结果.有没有更好的办法?或者针对不同方式的任何其他建议?我应该将测试套件放在bin/tests或mypackage/tests中吗?

ale*_*cxe 1

我不相信有任何关于放置位置的“最佳实践” tests。看看有多少不同的意见:Python单元测试去哪儿了?

tests我个人在顶层有一个且唯一的目录,靠近你的binmypackage目录 - 例如django就有。

要运行bin脚本并获取结果,您可以使用:

希望有帮助。