gpt4 book ai didi

python - 是否可以使用基于 Python 的单元测试框架和运行器来测试 C 代码

转载 作者:太空狗 更新时间:2023-10-29 17:46:11 24 4
gpt4 key购买 nike

像“nose”这样基于 Python 的单元测试框架有很多丰富的特性,我想知道我们是否可以利用它们来测试 C 代码。

最佳答案

当然可以......但是你必须编写一个绑定(bind)来在 python 中调用你的 C 代码(例如 ctypes),并在 python 中编写测试(这确实是可能的并且很容易做智能测试的方法)

示例:

  • 编写一个虚拟 C 库。

foolib.c

int my_sum(int , int);

int my_sum(int a , int b);
{
return a + b;
}
  • 将其编译为共享库:

gcc -shared -Wl,-soname,foolib -o foolib.so -fPIC foolib.c

  • 用 ctypes 编写包装器:

foolib_test.py

import ctypes
import unittest

class FooLibTestCase(unittest.TestCase):
def setUp(self):
self.foolib = ctypes.CDLL('/full/path/to/foolib.so')

def test_01a(self):
""" Test in an easy way"""
self.failUnlessEqual(4, foolib.my_sum(2, 2))

然后,当用 nose 运行这个测试时,你应该对你的 C 代码有一个很好的测试:)

关于python - 是否可以使用基于 Python 的单元测试框架和运行器来测试 C 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7652193/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com