12
基於Python的單元測試像「鼻子」這樣的框架有很多豐富的功能,我想知道我們是否可以利用它們來測試C代碼。是否有可能使用基於Python的單元測試框架和運行器來測試C代碼
基於Python的單元測試像「鼻子」這樣的框架有很多豐富的功能,我想知道我們是否可以利用它們來測試C代碼。是否有可能使用基於Python的單元測試框架和運行器來測試C代碼
當然,你可以......但你必須編寫一個綁定來調用你的Python代碼(例如ctypes),然後用python編寫測試(這是一個非常簡單的方法做智能測試)
例子:
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
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))
,然後用鼻子運行這個測試時,你應該有你的C代碼:)
能否請您詳細闡述或者給我一個例子一個很好的測試,讓我瞭解這將是多麼複雜。謝謝 – kamal
@kamal:完成示例;) –
感謝它真的有效! – kamal