我有一个具有以下结构的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库集成良好,是否支持模拟子命令中使用的一些对象(这对我来说是必须的) )。