हमारी परियोजना में हम एक इकाई परीक्षण के लिए QtTestLib का उपयोग कर रहे हैं। कारण यह है कि पूरी परियोजना पहले से ही क्यूटी का उपयोग करती है जब भी यह संभव हो और यह एक जीयूआई एप्लीकेशन है, इसलिए हम जीयूआई इंटरफेस का परीक्षण करने की क्षमता चाहते थे।एक एकल परीक्षण प्रोजेक्ट का उपयोग करते समय सभी QtTestLib इकाई परीक्षणों के परिणामों को एक फ़ाइल में कैसे लिखें?
हमारी परियोजना एमएसवीसी द्वारा संकलित की गई है, इसलिए हम प्रत्येक टेस्ट 'कोज़ के लिए एक अलग प्रोजेक्ट फ़ाइल नहीं चाहते थे, यह समाधान को अव्यवस्थित करेगा। इस प्रकार हमने सभी परीक्षणों के लिए एक एकल परियोजना बनाई है। सभी परीक्षणों को एक सीआईएस (निरंतर एकीकरण) पर स्वचालित किया जाना चाहिए, इसलिए हमने कुछ परीक्षणों को एक्सएसएलटी ट्रांसफॉर्मेशन का उपयोग करके एक्सएमएल प्रारूप में आउटपुट फाइल के माध्यम से हडसन को प्लग करने की कोशिश की।
लेकिन ऐसा लगता है कि परीक्षण 'आउटपुट में कोई समस्या है। आप एक ही मुख्य() सभी परीक्षणों के लिए इस्तेमाल करते हैं और केवल प्रत्येक परीक्षा के लिए cmd लाइन तर्क संचारित करती हैं:
#include "MyFirstTest.h"
#include "MySecondTest.h"
int main(int argc, char **argv)
{
int result = 0;
MyFirstTest test1;
result |= QTest::qExec(&test1, argc, argv);
MySecondTest test2;
result |= QTest::qExec(&test2, argc, argv);
return result;
}
तो आप एक परिणाम फ़ाइल को कई बार rewrited मिल जाएगा। इसलिए यदि आप इसे आउटपुट फ़ाइल (उदाहरण के लिए एक्सएमएल) का उपयोग करके कुछ हद तक स्वचालित करना चाहते हैं, तो आपको इसमें केवल अंतिम परिणाम मिलेगा। अन्य सभी ओवरराइट हो जाएगा।
हमने पहले से ही उस दृष्टिकोण की कोशिश की है, यह आपको हडसन जैसे कुछ निरंतर एकीकरण सिस्टम का उपयोग करने की क्षमता नहीं देता है। तो मेरा सवाल होगा: क्या एक आउटपुट फ़ाइल में परिणाम जोड़ने के लिए कोई मौका है? निस्संदेह हम अलग-अलग फाइलों में परिणाम लिखने के लिए संशोधित पैरामीटर के साथ QTest :: qExec() द्वारा प्रत्येक परीक्षण चलाने जैसे कुछ कामकाज का उपयोग कर सकते हैं, लेकिन यह सबसे अच्छा तरीका प्रतीत नहीं होता है। आदर्श रूप में मैं सीआईएस के साथ इसका उपयोग करने के लिए एक परिणाम परिणाम फ़ाइल चाहता हूं।
Qt4.8 था, और पूरी तरह से परीक्षण नहीं किया गया था। सिद्धांत दिखाने के लिए चाहता था। धन्यवाद, उपरोक्त उत्तर में फिक्सेस बना दिया है। – muenalan