Sco*_*ths 3 python unit-testing
我正在为一个兼有a *args和**kwargs参数的函数编写单元测试.此函数的合理用例是在*argsargment 之后使用关键字参数,即表单
def f(a, *b, **c):
print a, b, c
f(1, *(2, 3, 4), keyword=13)
Run Code Online (Sandbox Code Playgroud)
现在这只在Python 2.6中变得合法 ; 在早期版本中,上面的行是语法错误,因此甚至不会编译为字节码.
我的问题是: 我如何测试较新的Python版本中提供的功能,并且仍然可以为较旧的Python版本运行测试?
我应该指出,函数本身适用于早期的Python版本,只有一些调用是Python 2.6之前的语法错误.我看过检查Python版本的各种方法不适用于此,因为它没有超过编译阶段.
如果可能的话,我宁愿不必将测试分成多个文件.
Mar*_*wis 11
我认为你不应该测试Python是否正常工作; 相反,专注于测试自己的代码.在这样做时,完全可以以适用于所有Python版本的方式编写特定的调用,即:
f(1, *(2,3,4), **{'keyword':13})
Run Code Online (Sandbox Code Playgroud)