2008-11-03 16 views
7

में सी ++ यूनिट परीक्षणों का निर्माण और चलाना मेरे पास एक बड़ी परियोजना है जिसके लिए मैं टीडीडी का उपयोग करने का प्रयास कर रहा हूं। मैं अपने परीक्षण ढांचे के रूप में Tut का उपयोग कर रहा हूं, जिसमें इसकी त्रुटियां हैं लेकिन मुझे जो चाहिए वह पर्याप्त है।विजुअल स्टूडियो (टीडीडी)

मुझे लिंक टाइम टेस्ट सीम का उपयोग करने की आवश्यकता है, प्रत्येक परीक्षण अपने निष्पादन योग्य में होना चाहिए। इस निष्पादन योग्य के लिए परियोजना तब खुद को एक पोस्ट बिल्ड चरण के रूप में लॉन्च करती है।

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

क्या कोई इन परीक्षणों को चलाने का बेहतर तरीका जानता है? क्या बिल्डिंग से परियोजनाओं को छिपाना संभव है और फिर भी उन्हें अभी भी बनाना है?

+0

मैंने बाद में अपग्रेड किया है, समाधान फ़ोल्डर्स के अतिरिक्त इस समस्या को हल करता है। मैं सिर्फ अपने परीक्षण एक फ़ोल्डर में डाल सकता हूं। –

उत्तर

4

"क्या निर्माण से परियोजनाओं को छिपाना संभव है और फिर भी उन्हें अभी भी निर्माण करना संभव है?"

आप परीक्षण मामलों के लिए अलग समाधान कर सकते हैं। फिर आप अपनी मुख्य परियोजनाओं के पोस्ट बिल्ड चरण को सेट अप कर सकते हैं। इस पोस्ट-बिल्ड को अलग-अलग समाधान के माध्यम से परीक्षण-परियोजनाएं बनाना चाहिए और उन्हें चलाएं। बिल्डिंग टेस्ट-प्रोजेक्ट कमांड लाइन के माध्यम से किया जाना चाहिए (उदाहरण के लिए here देखें)।

आप मुख्य परियोजनाओं से कुछ lib-एस के साथ अपनी इकाई परीक्षण से जोड़ने के लिए की जरूरत है, आप का उपयोग

#pragma comment(lib, "libname") 

जानकारी के लिए this MSDN page देख सकते हैं।

+0

मुझे एक अलग एसएलएन बनाने का विचार पसंद है, उम्मीद है कि मैं उन्हें ओबीजे फाइलों को साझा कर सकता हूं। –

+0

मैंने obj-s साझा करने की कोशिश नहीं की ... शुभकामनाएँ :) – sergtk

0

आप समाधान परीक्षण में अपने समाधान के भीतर फ़ोल्डरों में अपने परीक्षणों को समूहबद्ध करने की कोशिश कर सकते हैं (जिन्हें वे फ़िल्टर कहा जाता है?)। यह आपकी अन्य परियोजनाओं से परीक्षण अलग करेगा।

लेकिन, अन्यथा, क्या आप लिंक टाइम टेस्ट सीम का उपयोग करने से बच सकते हैं (हां, मुझे पता है, शायद यह सुझाव देने में बहुत देर हो चुकी है) और अपनी रन-टाइम भिन्नता प्रदान करने के लिए बहुरूपता का उपयोग करें और कम परीक्षण परियोजनाएं करें?

0

पता नहीं है कि आप अभी भी समाधान ढूंढ रहे हैं या नहीं। लेकिन यहां एक विचार है:

आप अपने सभी परीक्षण एक पुस्तकालय में रख सकते हैं और एक ऐसा एप्लिकेशन लिख सकते हैं जो स्वयं को उत्पन्न करता है और प्रत्येक परीक्षण निष्पादित करता है। इस तरह आप एक निष्पादन योग्य (और इसलिए एक परियोजना) के साथ एक सूट के लिए समाप्त होते हैं और प्रत्येक परीक्षण एक अलग निष्पादन योग्य की तरह होगा।

यह वास्तव में CUnitWin32 में उपयोग की गई तंत्र है। आप उस ढांचे में अपने परीक्षण लपेटने में भी सक्षम हो सकते हैं।

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