2011-10-04 14 views
12

परीक्षण करने के लिए पाइथन आधारित यूनिट टेस्ट फ्रेमवर्क और धावक का उपयोग करना संभव है, "नाक" जैसे पायथन आधारित यूनिट परीक्षण फ्रेमवर्क में बहुत सारी समृद्ध सुविधाएं हैं, मुझे आश्चर्य है कि क्या हम सी कोड का परीक्षण करने के लिए उनका लाभ उठा सकते हैं।सी कोड

उत्तर

14

बेशक आप कर सकते हैं .... लेकिन आपको अपने सी कोड को पायथन में कॉल करने के लिए बाध्यकारी लिखना होगा (उदाहरण के लिए ctypes के साथ), और पायथन में परीक्षण लिखें (यह वास्तव में संभव है और एक आसान तरीका है स्मार्ट परीक्षण करने के लिए)

उदाहरण:

  • एक डमी सी पुस्तकालय लिखें।

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)) 

और तब, जब नाक के साथ इस परीक्षण चल रहा है आप अपनी सी कोड :)

+0

आप विस्तृत या मुझे एक उदाहरण देता हूँ कृपया सकते हैं का एक अच्छा परीक्षण होना चाहिए , मेरे लिए यह जानना कि यह कितना जटिल होगा। धन्यवाद – kamal

+0

@kamal: उदाहरण किया गया;) –

+0

धन्यवाद यह वास्तव में काम करता है !!!! – kamal