हमारे बूस्ट आधारित परीक्षण संरचना इस तरह दिखता है: जोड़ सकते हैं और कैसे करने के लिए करने के लिए
ProjectRoot/
Library1/
lib1.vcproj
lib1.cpp
classX.cpp
...
Library2/
lib2.vcproj
lib2.cpp
toolB.cpp
classY.cpp
...
MainExecutable/
main.cpp
toolA.cpp
toolB.cpp
classZ.cpp
...
Tests/
unittests.sln
ut_lib1/
ut_lib1.vcproj (referencing the lib1 project)
ut_lib1.cpp (with BOOST_AUTO_TEST_CASE) - testing public interface of lib1
ut_classX.cpp - testing of a class or other entity might be split
into a separate test file for size reasons or if the entity
is not part of the public interface of the library
...
ut_lib2/
ut_lib2.vcproj (referencing the lib2 project)
ut_lib2.cpp (with BOOST_AUTO_TEST_CASE) - testing public interface of lib2
...
ut_toolA/
ut_toolA.vcproj (referencing the toolA.cpp file)
ut_toolA.cpp - testing functions of toolA
ut_toolB/
ut_toolB.vcproj (referencing the toolB.cpp file)
ut_toolB.cpp - testing functions of toolB
ut_main/
ut_main.vcproj (referencing all required cpp files from the main project)
ut_classZ.cpp - testing classZ
...
यह संरचना एक विरासत परियोजना है, जहां हम क्या परीक्षण पर एक मामला-दर-मामला आधार पर तय करने के लिए किया था के लिए चुना गया था स्रोत कोड के मौजूदा मॉड्यूल के लिए समूह परीक्षण परियोजनाएं।
बातें ध्यान रखें:
- यूनिट टेस्टिंग कोड हमेशा उत्पादन कोड से अलग से संकलित किया गया है।
- उत्पादन परियोजनाएं इकाई परीक्षण कोड का संदर्भ नहीं देती हैं।
- यूनिट परीक्षण परियोजनाओं में स्रोत-फ़ाइलों को सीधे या केवल संदर्भ पुस्तकालय शामिल हैं, जो किसी निश्चित कोड-फ़ाइल के उपयोग को समझ में आता है।
- यूनिट परीक्षणों को चलाने के लिए प्रत्येक ut _ * में vcproj
- हमारे सभी उत्पादन स्वचालित रूप से यूनिट परीक्षण चलाते हैं। (हमारी बिल्ड स्क्रिप्ट में।)
हमारी असली (सी ++) दुनिया में आपको ट्रेडऑफ बीटीडब्ल्यू करना है। विरासत के मुद्दों, डेवलपर सुविधा, संकलन समय, आदि। मुझे लगता है कि हमारी परियोजना संरचना एक अच्छा व्यापार है। :-)
स्रोत
2010-08-27 13:37:14
विकल्प बहुत त्रुटि-प्रवण है! – Wartin
प्रोजेक्ट रूट निर्भरताओं के बारे में क्या? क्या ProjectRoot में ProjectRootTests है जो अन्य सभी परीक्षणों पर निर्भर करता है? – JBRWilkinson