Основанные на Python Unit test Рамки, такие как "нос", имеют множество богатых функций, мне интересно, можем ли мы использовать их для тестирования кода C.
Возможно ли использовать фреймворки и бегуны на основе Python на основе Unit Test для тестирования кода C
Ответ 1
Конечно, вы можете... но вам придется написать привязку, чтобы вызвать ваш код C в python (с 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))
И затем, при выполнении этого теста с носом, у вас должен быть хороший тест на ваш код C:)