का उपयोग शुरू करने में सहायता करना मैं इकाई परीक्षण शुरू करने की कोशिश कर रहा हूं। मैं कुछ सी ++ ढांचे को देख रहा हूं और बूस्ट.स्टेस्ट को आजमा देना चाहता हूं। दस्तावेज़ीकरण बहुत गहन लगता है, और यह थोड़ा जबरदस्त है, खासकर यूनिट परीक्षण के लिए कोई नया। तो यहां एक ऐसी स्थिति है जो मैं चाहता हूं:Boost.Test
मान लें कि मेरे पास 2 कक्षाएं, Foo
और Bar
हैं। मैं Foo
के लिए परीक्षणों का एक सूट लिखना चाहता हूं और Bar
के लिए परीक्षणों का एक सूट, अधिमानतः विभिन्न फाइलों में लिखना चाहता हूं। मैं केवल तभी परीक्षण करना चाहता हूं जब मैं कमांड लाइन पैरामीटर के साथ प्रोग्राम चलाता हूं। मुझे लगता है कि test_foo.cpp
की तरह कुछ होना चाहिए
int main(int argc, const char* argv[])
{
if (argc == 1 && strcmp(argv[0], "-test") == 0)
run_all_tests();
else
return program_main(argc, argv);
}
:: तो मेरी main()
कुछ ऐसा दिखाई देगा
#include "foo.hpp"
#define BOOST_TEST_MODULE Foo test
#include <boost/test/unit_test.hpp>
BOOST_AUTO_TEST_SUITE(Foo_Test)
BOOST_AUTO_TEST_CASE(Foo1)
{
Foo f;
BOOST_CHECK(f.isValid());
}
BOOST_AUTO_TEST_CASE(Foo2)
{
Foo f;
BOOST_CHECK(f.baz() == 5);
}
BOOST_AUTO_TEST_SUITE_END()
हालांकि, मैं (1) क्या वास्तविक आदेश परीक्षण है चलाने के लिए पता नहीं है, और (2) वास्तव में लाइब्रेरी को कैसे बताना है कि मैं हर परीक्षण चलाने के लिए चाहता हूं।
तो, जो Boost.Test साथ अनुभव है? क्या कोई विस्तृत तरीके से मदद कर सकता है? बहुत बहुत धन्यवाद।
मुझे समझ में नहीं आता है ... आप प्रोग्राम को सामान्य रूप से कैसे चलाते हैं (बिना परीक्षण के)? – rlbond
मूल रूप से आपके test_foo.cpp को एक .exe प्रोग्राम के रूप में बनाया जाना चाहिए और अपनी लाइब्रेरी से लिंक होना चाहिए जिसमें Foo & Bar कक्षाएं हों। Boost.test शीर्षलेख फ़ाइलों में से एक पहले से ही मुख्य फ़ंक्शन को परिभाषित करता है, इसलिए मुझे नहीं लगता कि आपने जो प्रस्तावित किया है वह करने योग्य है। – oscarkuo
असल में वहाँ है। इसे console_test_runner कहा जाता है। हालांकि यह ओपी समस्या से प्रासंगिक नहीं है क्योंकि उसके पास पहले से ही मुख्य है। –