m3h*_*hes 5 python testing automated-tests ctypes pytest
我正在使用Python中的pytest和ctypes在C库中测试函数.C库中的每个函数都调用嵌入式Linux PCI板上的函数,然后C库函数返回一个映射到一组返回码的整数.如果函数成功则返回0,否则返回其他一些错误代码.
我正在寻找一些有关测试此设置的最佳方法的见解,实质上我正在尝试找出测试此库的最佳实践.抛出异常和断言测试用例的最佳方法.我目前使用的测试环境使用pytest,切换会很痛苦.
由于嵌入式linux板具有状态,因此为了测试所有不同的条件,需要为测试设置很多状态.理想情况下,如果出现错误,python将捕获测试中发生的所有错误.
目前我有包装C库代码的python函数.测试将调用python代码,如果函数没有返回0,则包装python函数将抛出异常.因为我使用ctypes来调用DLL上的函数,所以所有的C函数都被python包装起来以使它们更容易调用,因此传递参数更容易.
如果您正在测试在某些条件下调用函数会导致错误,则必须将测试用例包装在凌乱的try-except块中
try:
return_code = call_to_c_api()
assert return_code == 0, "Message about test case"
except MyCustomException:
assert MyCustomException.message="Return code of python wrapped api"
Run Code Online (Sandbox Code Playgroud)如果其中一个设置函数不起作用,请不要使用python库包装C库并使其进行测试以断言失败.
如果有人能够提供任何有关测试的最佳方法的见解,将不胜感激!可能还有其他方法可以测试我尚未考虑过的方法!
干杯!
| 归档时间: |
|
| 查看次数: |
1187 次 |
| 最近记录: |