2011-09-18 15 views
8

मैं एक सी ++ प्रोजेक्ट शुरू करने वाला हूं लेकिन मैं मूलभूत बातों पर अटक गया हूं।कोड शुरू करना :: ब्लॉक और यूनिटटेस्ट ++

मैं (लिनक्स) कोड :: ब्लॉक आईडीई का उपयोग करना चाहता हूं, और सामान्य प्रोजेक्ट बनाना आसान है। हालांकि मैं यूनिटटेस्ट ++ ढांचे का उपयोग कर टीडीडी करना चाहता हूं, और मुझे नहीं पता कि सबकुछ साफ तरीके से कैसे सेट किया जाए।

मैंने question से पहले ही UnitTest::RunAllTests() कमांड कहां रखा है, और उन्होंने मुझे बताया कि एक अलग कार्यक्रम के main() को सबसे अच्छा स्थान बताया गया है।

मैं कोड :: ब्लॉक में ऐसा करने के बारे में कैसे जा सकता हूं? मुझे लगता है कि मुझे 2 परियोजनाएं बनाने की जरूरत है:

  • "असली" प्रोजेक्ट अपने main() के साथ;
  • परीक्षण परीक्षण वाली इकाई परीक्षण परियोजना और main()UnitTest::RunAllTests() के अंदर।

फिर किसी भी तरह की पहली परियोजना बनाएं और इसकी निर्माण प्रक्रिया के दौरान दूसरी बार दौड़ें। मुझे नहीं पता कि अभी तक ऐसा कैसे करें लेकिन मैं खुद ही पता लगा सकता हूं।

मेरे प्रश्न हैं:

  1. यह सही तरीका है?
  2. क्या मुझे अन्य प्लेटफॉर्म पर अन्य लोगों को बनाने के लिए यूनिटटेस्ट ++ फ्रेमवर्क के लिए एक प्रोजेक्ट भी बनाना है? या परियोजना के पथ में अनुपालन पुस्तकालय को छोड़ रहा है?
  3. मैं इन परियोजनाओं की निर्देशिकाओं को एक साथ कैसे व्यवस्थित कर सकता हूं? उस पैकेज के समान निर्देशिका में प्रत्येक पैकेज से संबंधित परीक्षणों को रखना अच्छा लगेगा, लेकिन क्या एक ही निर्देशिका पेड़ में एकाधिक प्रोजेक्ट्स रखना ठीक है?
+0

यूनिटटेस्ट ++ पर अच्छी पसंद –

उत्तर

4

मैं आंशिक रूप से अपने स्वयं के प्रश्नों का उत्तर दूंगा, क्योंकि मैंने सब कुछ काम करने में कामयाब रहा है।

  1. official documentation page पर दिए गए निर्देशों के बाद, मैं अपने प्रोजेक्ट के मार्ग में संकलित पुस्तकालय और सभी स्रोत फ़ाइलों के साथ unittest ++ फ़ोल्डर रख दिया है।
  2. फिर मैंने सभी यूनिट परीक्षणों के लिए एक परीक्षण प्रोजेक्ट बनाया, जिसमें मुख्य कार्य के साथ प्रसिद्ध UnitTest::RunAllTests() शामिल था। मैंने इस परियोजना को हर बार स्वचालित रूप से निष्पादित करने के लिए $exe_output को पोस्ट-बिल्ड प्रक्रिया के रूप में रखा है।
  3. मैंने "वास्तविक" प्रोजेक्ट बनाया जहां मेरा कोड परीक्षण किया जाएगा। बिल्ड सेटिंग्स में मैंने परीक्षण प्रोजेक्ट को वास्तविक प्रोजेक्ट की निर्भरता के रूप में निर्दिष्ट किया है, ताकि हर बार जब मैं असली बनाउंगा, तो यह पहले टेस्ट प्रोजेक्ट भी बनाता है।

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

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

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