2009-09-23 17 views
8

मैं एक रूबी प्रोग्रामर हूं और मैं वास्तव में टीडीडी करना पसंद करता हूं। अभी, मैं सी में थोड़ा प्रोग्रामिंग कर रहा हूं, लेकिन मुझे अपने टूल्स और जिस तरह से मैं रूबी के साथ प्रोग्राम पसंद करता हूं। तो, मैं सी में यूनिट परीक्षण करने के लिए एक ढांचा खोज रहा हूं। आप मुझे इसके बारे में क्या बता सकते हैं?सी के लिए यूनिट परीक्षण फ्रेमवर्क: तुलना

मुझे पहले से ही कुछ विकल्प मिल गए हैं, जैसे: कुनीट, सेमीॉकरी, क्यूटेस्ट और अन्य। समस्या यह है कि, मुझे नहीं पता कि सर्वश्रेष्ठ का मूल्यांकन कैसे किया जाए। मैं अपने कंपाइलर्स कॉलेज कोर्स के लिए एक सरल कंपाइलर लिख रहा हूं।

क्या आप मेरी मदद कर सकते हैं?

+0

मैं कुछ आसान करना चाहता हूं, क्यूटेस्ट (http://cutest.sourceforge.net/) के रूप में, लेकिन कटर (http://cutter.sourceforge.net) के रूप में भी मुझे एक महान आउटपुट के साथ कुछ करना होगा। /)। लेकिन वास्तव में ऐसा लगता है कि मेरे पास दोनों नहीं हो सकते हैं। –

+0

मैं भी इस प्रश्न का उत्तर देखना चाहता हूं। –

उत्तर

3

आप किसी भी सी या सी ++ इकाई परीक्षण ढांचे का उपयोग कर सकते हैं। सी ++ से सी कार्यों को कॉल करना काफी आसान है।

मेरी राय यह है कि आप अपने परीक्षणों से जितना संभव हो उतना कम उत्पादन करना चाहते हैं। यानी अगर सबकुछ ठीक है, तो इसे '100% passed' प्रिंट करना चाहिए। अन्यथा इसे केवल परीक्षण विफलताओं के विवरण मुद्रित करना चाहिए।

xprogramming.com देखें, यूनिट परीक्षण तालिका पर नीचे स्क्रॉल करें और C Language या C++ ढांचे के लिए देखें। ऐसा लगता है कि सबसे 'मानक' cppUnit है।

+0

सी का उपयोग करने वाले कई वातावरण में, आप * केवल * सी का उपयोग कर सकते हैं। इसलिए सी ++ ढांचे शायद यहां उपयोगी नहीं हैं, खासकर जब से ओपी कॉलेज में एक कंपाइलर कोर्स के बारे में बात कर रहा है, जो संभवतः उसे सी ++ का उपयोग करने नहीं देगा परियोजना। –

+0

यह सच है कि, उदाहरण के लिए, एक एम्बेडेड सी कंपाइलर जो विंडोज़ के नीचे चलता है, लेकिन माइक्रोकंट्रोलर को लक्षित करता है केवल सी संकलित करता है, लेकिन विजुअल स्टूडियो में अपने कोड को संकलित करने में काफी आसान होगा। फिर आप सी ++ में परीक्षण जो भी सी ++ यूनिट परीक्षण फ्रेमवर्क चाहते हैं उसके साथ लिख सकते हैं। – quamrana

3

मैंने gtest का उपयोग किया है और इसे उपयोग करने में बहुत आसान पाया गया है (हालांकि यह सी ++ है)। असल में, इससे कोई फर्क नहीं पड़ता कि आप जो भी चुनते हैं। बस एक चुनें और इसे सीखें।

+0

सी का उपयोग करने वाले कई वातावरण में, आप * केवल * सी का उपयोग कर सकते हैं। इसलिए सी ++ ढांचे शायद यहां उपयोगी नहीं हैं, खासकर जब से ओपी कॉलेज में एक कंपाइलर कोर्स के बारे में बात कर रहा है, जो संभवतः उसे सी ++ का उपयोग करने नहीं देगा परियोजना। –

+1

gtest एकमात्र परीक्षण ढांचा है जिसे मैंने सी/सी ++ –

+0

में पसंद किया है AFAIK gtest का उपयोग सी के साथ भी किया जा सकता है, क्योंकि यह केवल मैक्रोज़ का उपयोग करता है, इसलिए कोई सी ++ निर्भरता नहीं होनी चाहिए। – helpermethod

1

एक विकी पृष्ठ है जो लगभग 20 C compatible unit testing frameworks पर जानकारी सूचीबद्ध करता है। हालांकि यह निर्णय लेने के लिए पर्याप्त जानकारी नहीं हो सकती है, यह एक सभ्य प्रारंभिक बिंदु है।

1

Unity, सी के लिए एक परीक्षण ढांचे में बिटवाई और मेमोरी ब्लॉक तुलना सहित दावों का एक समृद्ध सेट है। यदि आप एक बड़ी विरासत कोडबेस से निपट नहीं रहे हैं तो मैं Ceedling, यूनिटी की मूल परियोजना का उपयोग करने की सलाह दूंगा। सिडलिंग आपके यूनिटी परीक्षण, उत्पादन कोड बनाता है और CMock नामक एक अच्छा मॉकिंग फ्रेमवर्क एकीकृत करता है। सीएमओक अपने सार्वजनिक इंटरफेस हेडर से मॉड्यूल के लिए नकली/विकल्प को स्वतः उत्पन्न कर सकता है।

एक वीडियो दिखा रहा है कि आपको get started with Ceedling and Unity कैसे दिखाया जाए। (अस्वीकरण: मैंने वीडियो बनाया)।

एक विकल्प, CppUTest है। यह 1 स्थैतिक पुस्तकालय (2 यदि आप इसका मॉकिंग फ्रेमवर्क, CppUMock) का उपयोग करना चाहते हैं तो संकलित करता है। टेस्ट सी ++ में लिखे गए हैं और यह आपके मौजूदा मेकफ़ाइल प्रोजेक्ट के साथ एकीकृत है। यह malloc/free, new/delete के लिए मेमोरी लीक डिटेक्शन विकल्प भी प्रदान करता है। तुलनात्मक रूप से, यह दावा एकता के रूप में व्यापक नहीं हैं, लेकिन यह शायद सी/सी ++ विरासत परियोजनाओं के परीक्षण के लिए बेहतर अनुकूल है।

संबंधित मुद्दे