用Python单元测试C代码的最简单的方法

我有一堆C代码,我想使用Python的单元测试库(在Windows中)进行单元测试,但是我试图找出最好的连接C代码的方法,以便Python可以执行它(和得到结果回来)。有没有人有最简单的方法做任何经验?

一些想法包括:

>使用Python API将代码包装为Python C扩展
>使用SWIG包装C代码
>添加一个DLL包装器到C代码,并使用ctypes加载到Python
>将一个小的XML-RPC服务器添加到c代码并使用xmlrpclib调用它(是的,我知道这似乎有点远了!)

有这样做的规范方法吗?我将要做的很多,不同的C模块,所以我想找到一种最不方便的方式。

我认为确切的解决方案取决于你的代码。并不是所有的库都容易适合作为DLL的包装。如果你是,那么ctypes肯定是最简单的方法 – 只需将一个DLL从你的库中,然后用ctypes测试。另外一个好处是,现在你的库可以方便地被包装成一个独立的DLL,这有助于解除你的应用程序。

然而,有时候,您的C代码和测试Python代码之间将需要更彻底的交互。然后,最好把它作为一个扩展,为此SWIG是一个很好的工具,将自动化大部分的事情,你会觉得无聊的过程。

http://stackoverflow.com/questions/2482270/easiest-way-of-unit-testing-c-code-with-python

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:用Python单元测试C代码的最简单的方法