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中吗?
答案 0 :(得分:1)
我不相信有关于tests
放在哪里的“最佳做法”。看看有多少不同的意见:Where do the Python unit tests go?
我个人在tests
和bin
目录附近的顶层只有一个mypackage
目录,例如,django。
要运行bin
脚本并获取结果,您可以使用:
子流程(如您所述),但使用check_output
:
import subprocess
output = subprocess.check_output("cat /etc/services", shell=True)
test command-line scripts
- 看起来像工作的工具希望有所帮助。