मैं सीएमके में नया हूं और मैं Google टेस्ट फ्रेमवर्क का उपयोग कर रहा हूं। मैंने सीएमके और Google परीक्षण ढांचे के संयोजन के अधिक जटिल उदाहरणों की तलाश की है, लेकिन मैंने बहुत भाग्य नहीं लिया है। मैं उम्मीद कर रहा था कि कोई उस सेटअप पर अपनी राय दे सकता है जिस पर मैं पहुंचा हूं और मेरे लिए एक प्रश्न का उत्तर दे रहा हूं। यहाँ बुनियादी परियोजना संरचना है:यूनिट टेस्ट आउटपुट और परियोजना संरचना सलाह --- सीएमके + Google टेस्ट फ्रेमवर्क
ProjectFolder
-CMakeLists.txt
/निर्माण
/शामिल
निर्माण सभी मेरी ज फ़ाइलें
/src
-CMakeLists.txt
- मेरी मेरी .cpp फ़ाइलें
/परीक्षण
-CMakeLists.txt
/gtest
-Google के CMakeLists.txt
/उपहास
-CMakeLists.txt
-cpp और ज मोजे के लिए फ़ाइलें
संक्षेप में रूट cmake फ़ाइल subdirectories के रूप में src और परीक्षण जोड़ती है। Src cmake फ़ाइल cpp फ़ाइलों को लाइब्रेरी में globs। परीक्षण सेमेक फ़ाइल उपनिर्देशिका के रूप में mocks और gtest जोड़ता है। नकली cmake फ़ाइल अपनी सभी सीपीपी फ़ाइलों को दूसरी पुस्तकालय में globs। अंत में परीक्षण फ़ोल्डर में cmake फ़ाइल स्रोत पुस्तकालय, गूगल पुस्तकालय, और यूनिट परीक्षण निष्पादन योग्य के साथ mocks पुस्तकालयों को जोड़ता है।
मैं अंत में क्या मिलता कई निष्पादनयोग्य हैं: objA_unittest, objB_unittest, आदि
कुछ बातें:
इस सब का निर्माण और अभी भी निर्माण में मैं सीडी काफी साफ अपने प्रोजेक्ट निर्देशिका रखने के लिए फ़ोल्डर और "cmake .." चलाएं। यह वास्तव में अच्छी तरह से काम करता प्रतीत होता है और मैं हमेशा इस फ़ोल्डर से बाहर निकलने के लिए vim को कॉन्फ़िगर करने की योजना बना रहा था। क्या किसी के पास कोई दृष्टिकोण है या इस दृष्टिकोण के साथ कोई समस्या है?
मुझे अपने प्रोजेक्ट फ़ोल्डर में Google लाइब्रेरी घोंसला करने के विचार का शौक नहीं है (विशेष रूप से यदि मेरे पास अंततः कई परियोजनाएं हैं जो इसका उपयोग करती हैं), लेकिन ऐसा लगता है कि आप अत्यधिक अनुशंसा नहीं करते हैं गूगल लाइब्रेरीज़ मैं इसके चारों ओर कोई रास्ता नहीं देख सकता। हालांकि, अगर किसी को बेहतर तरीके से पता है, तो मुझे यह सुनना अच्छा लगेगा।
परीक्षण चलाना। मुझे यह पसंद है कि मुझे बस इतना करना है कि सीटीएस्ट के साथ मेरे सभी यूनिट परीक्षणों को निष्पादित करने के लिए "टेस्ट टेस्ट" चलाएं। हालांकि, मुझे पता चला है कि मुझे आउटपुट बहुत पसंद नहीं है। प्रत्येक यूनिट परीक्षण निष्पादन योग्य में कई अलग-अलग यूनिट परीक्षण होते हैं। इन्हें सीधे चलाने से Google की बहुत वर्बोज़ प्रतिक्रिया मिलती है। यदि निष्पादन योग्य में से एक परीक्षण विफल रहता है तो मुझे पता है कि वास्तव में कौन सा परीक्षण विफल रहता है और क्यों। पहले, मैंने मेकफ़ाइल का उपयोग किया और मेकफ़ाइल के अंत में मैंने बस सभी परीक्षण निष्पादित किए। मैंने पहले सेमीकेक में कस्टम बिल्ड लक्ष्य बनाकर इसे ठीक करने का प्रयास किया।हालांकि, यह केवल पहले कमांड निष्पादित करता है। मुझे या तो सीटीएस्ट से अधिक वर्बोज आउटपुट प्राप्त करने का एक तरीका चाहिए या मुझे प्रत्येक यूनिट परीक्षण निष्पादन योग्य निष्पादित करने के लिए स्वचालित रूप से बैश स्क्रिप्ट या सीएमके के समान कुछ आउटपुट करने का एक तरीका चाहिए। दूसरे शब्दों में, मेरे पास अब cmake फ़ाइल स्थापित है इसलिए मुझे निष्पादन योग्य उत्पन्न करने के लिए केवल एक ही इकाई में यूनिट परीक्षण जोड़ना होगा, और अगर मैं इससे बच सकता हूं तो मैं इसे दूसरे स्थान पर जोड़ना नहीं चाहता यह। क्या किसी के पास कोई अनुभव है जो इस बिंदु में सहायक होगा?
बहुत पहले से धन्यवाद।
सावधान रहें: पहले से ही 'परीक्षण' नामक एक पूर्व परिभाषित सीएमके लक्ष्य है। उसी नाम के साथ एक कस्टम लक्ष्य जोड़ना आम तौर पर अनुशंसित नहीं है। आप उसी निर्देशिका में "ctest -V" या "ctest -VV" भी कॉल कर सकते हैं जहां आप अब "परीक्षण करें" कह रहे हैं, और यह पूर्ण परीक्षण सूट * चलाएगा * और * आपको सभी परीक्षणों का आउटपुट दिखाएगा। (-V == verbose, -VV == बहुत verbose) – DLRdave
बस FYI, मैं वास्तव में तीव्र प्रतिक्रिया (और नीचे वाला एक भी) की सराहना करता हूं। मैं बस स्कूल में व्यस्त रहा हूं और इनमें से किसी एक का परीक्षण करने का समय नहीं है। जैसे ही मैं करता हूं मैं उचित उत्तर का चयन करूंगा। बस आपको बताना चाहता था कि मैं नहीं भूल गया था। :) – Landon