2012-08-03 6 views
10

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

यूनिट परीक्षण के लिए सामान्य उपयोग केस है .... परीक्षण कक्षाएं जो आपने स्वयं लिखी हैं, लेकिन ट्यूटोरियल में परीक्षण के लिए एक अलग प्रोजेक्ट में अपनी कक्षाओं को संदर्भित करने के तरीके पर कोई उल्लेख नहीं है और Google ने मुझे भी असफल कर दिया है (और मुझे सचमुच संदेह है कि कॉपी पेस्टिंग क्लास इसे करने का एक अच्छा तरीका है)।

मैंने क्यूटीटेस्ट का कोई उल्लेख नहीं होने के साथ 3 अलग-अलग क्यूटी किताबों के माध्यम से भी थंब किया। तो यह है कि आप भी शामिल कर रहे शीर्षलेख ढूंढने के लिए सक्षम होना चाहिए

INCLUDEPATH += <directory> 

:

+0

QtCreator में प्रोजेक्ट पर राइट क्लिक करके "मौजूदा फाइलें जोड़ें" करने से मदद नहीं मिलती है? –

+0

# शामिल करने का प्रयास करते समय उन फ़ाइलों को नहीं ढूंढता है, और हां इसे .pro –

+0

@ हेनोटोटैक हेडर्स में हेडर्स में जोड़ा गया है, वर्तमान प्रोजेक्ट की हेडर फाइलों के लिए है। तृतीय पक्ष आदि से स्रोत शामिल करने के लिए नीचे मेरा जवाब देखें। – AJG85

उत्तर

6

आप जोड़ सकते हैं ताकि तरह अपने .pro फ़ाइल में अन्य परियोजना निर्देशिका के लिए पथ शामिल हैं।

संपादित करें: टिप्पणी

एक और कहानी पूरी तरह है कि के आधार पर। अनिर्धारित संदर्भ आमतौर पर इसका मतलब है कि आप निर्भरता खो रहे हैं। यह आमतौर पर दो चीजों में से एक के साथ हल किया जा सकता है। शायद बेहतर समाधान एक पुस्तकालय के रूप में यह संकलन और इसे करने के लिए जोड़ने के द्वारा पुन: प्रयोज्य कोड का पर्दाफाश करने के लिए है

INCLUDEPATH += ../myotherproject/ 
SOURCES = main.cpp ../myotherproject/missingsource.cpp 

:

सरल लापता स्रोत फ़ाइल शामिल करने के लिए है। जैसे विंडोज़ पर एक डीएलएल या .LIB और एसओओ या। लिनक्स पर।

INCLUDEPATH += ../myotherproject/ 
win32:LIBS += ../myotherproject/linkme.lib 

क्या आप हमें विशिष्ट त्रुटियां दिखा सकते हैं?

+0

काम नहीं करता है, मेरे सभी फ़ंक्शन शामिल फ़ाइलों को कॉल करते हैं परिणाम "अनिवार्य संदर्भ ******" त्रुटियों के बावजूद क्यूटी निर्माता उन कार्यों को पूरा करने में सक्षम होने के बावजूद (अर्थात् हेडर ढूंढ रहा है) –

+0

@JohnLotacs देखें ऊपर संपादित करें, यह एक अलग समस्या है। – AJG85

8

मेरा सुझाव है कि आप सभी स्रोतों और शीर्षकों को रखें जो आपके मुख्य अनुप्रयोग प्रोजेक्ट और आपकी यूनिट परीक्षण परियोजना दोनों को एक .pri (.pro शामिल) फ़ाइल में चाहिए। इस परियोजना को मुख्य परियोजना में रखें। फिर दोनों फाइलों में इस फाइल को शामिल करें।

ध्यान दें कि जब भी मुख्य परियोजना के लिए एक नया वर्ग को जोड़ने, QtCreator स्वचालित रूप से .pro फाइल करने के लिए SOURCES += और HEADERS += लाइनों जोड़ देती है, लेकिन आप उन्हें .pri फ़ाइल में रहना चाहता हूँ, ताकि आप बाद में उन्हें मैन्युअल रूप से बढ़ने की जरूरत है । मुझे लगता है कि QtCreator को कहां रखना है, उन्हें कहने का कोई समाधान नहीं है।


मुख्य परियोजना:

myproject.pro 
myproject.pri 
main.cpp 
someclass.h 
someclass.cpp 

myproject.pro:

QT += ... 
TARGET = ... 
... 

SOURCES += main.cpp  # "private" to this project 
include(myproject.pri) # needed in unit test 

myproject.pri:

SOURCES += someclass.cpp 
HEADERS += someclass.h 

यूनिट परीक्षण परियोजना:

unittest.pro 
main.cpp 
test.h 
test.cpp 

unittest।समर्थक:

QT += ... 
TARGET = ... 
... 

SOURCES += main.cpp test.cpp 
HEADERS += test.h 

# include the classes from the main project: 
INCLUDEPATH += ../myproject/ 
include(../myproject/myproject.pri) 
संबंधित मुद्दे

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