首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Python对C代码进行单元测试的最简单方法

使用Python对C代码进行单元测试的最简单方法
EN

Stack Overflow用户
提问于 2010-03-20 15:12:48
回答 2查看 11.6K关注 0票数 23

我有一堆C代码,我想使用Python的单元测试库(在Windows中)对它们进行单元测试,但我正在尝试找出连接C代码的最佳方法,以便Python可以执行它(并返回结果)。有没有人有用最简单的方法做到这件事的经验?

一些想法包括:

  • 使用Python API将代码包装为Python C扩展
  • 使用SWIG封装C代码
  • 将DLL包装器添加到C代码中,并使用ctypes将其加载到Python中
  • 在C代码中添加一个小型XML-RPC服务器并使用xmlrpclib调用它(是的,我知道这看起来有点遥不可及!)

有没有一种规范的方法来做到这一点?我将用不同的C模块做很多这样的事情,所以我想找到一种最省力的方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-22 11:59:27

我认为确切的解决方案取决于您的代码。并不是所有的库都适合包装为DLL。

但是,有时需要在C代码和测试Python代码之间进行更彻底的交互。然后,最好的办法是把它作为一个扩展来挂接,SWIG是一个非常好的工具,它可以自动处理你会觉得无聊的大部分事情。

票数 8
EN

Stack Overflow用户

发布于 2010-03-20 15:19:18

使用ctype将是我的第一直觉,尽管我必须承认,如果我测试的是一开始就不会从Python接口的C代码,我会直接使用checkCheck的强大优势在于能够正确地报告段故障的测试用例。这是因为它在单独的进程中运行每个测试用例。

现在,如果您无论如何都要为C代码创建一个python包装器,我只需对包装器进行单元测试即可。除了上面列出的方法之外,您还可以使用Cython用类似Python的代码编写这样的包装器,然后从Python中对其进行单元测试。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2482270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档