doctest C++: पूरी गाइड उदाहरणों के साथ

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

doctest C++: पूरी गाइड उदाहरणों के साथ

1. यह क्या है और क्यों ज़रूरी है?

doctest C++ भाषा के लिए एक हल्का, स्व-दस्तावेजीकरण यूनिट टेस्टिंग फ्रेमवर्क है। इसकी सबसे बड़ी खासियत है कम से कम कंपाइलेशन टाइम और उपयोग में आसानी। Google Test या Boost.Test जैसे भारी फ्रेमवर्क के विपरीत, doctest एक header-only लाइब्रेरी है जिसे सिर्फ एक लाइन #include <doctest/doctest.h> से जोड़ा जा सकता है। यह इसे उन प्रोजेक्ट्स के लिए आदर्श बनाता है जहाँ बिल्ड स्पीड और बाहरी डिपेंडेंसी से बचना महत्वपूर्ण होता है।

doctest क्यों ज़रूरी है? आधुनिक C++ डेवलपमेंट में कोड टेस्टिंग कोई विलासिता नहीं, बल्कि आवश्यकता है। doctest आपको फंक्शन के ठीक बगल में टेस्ट लिखने की सुविधा देता है, जिससे कोड पढ़ने में आसानी होती है और मेंटेनेंस सरल हो जाता है। आप हेडर फाइलों में टेस्ट एम्बेड कर सकते हैं, और -DDOCTEST_CONFIG_DISABLE फ्लैग के बिना कंपाइल करने पर वे फाइनल बिल्ड से अपने आप हट जाते हैं। यह एक अनोखी सुविधा है: टेस्ट कोड के साथ रहते हैं, लेकिन रिलीज़ वर्जन के प्रदर्शन को प्रभावित नहीं करते।

doctest सभी आधुनिक C++ स्टैंडर्ड (C++11 और उससे ऊपर) को सपोर्ट करता है, सभी प्रमुख प्लेटफॉर्म (Windows, Linux, macOS) पर काम करता है, और कंटीन्यूअस इंटीग्रेशन (CI) सिस्टम के साथ आसानी से जुड़ जाता है। यह एसर्शन चेक करने, टेस्ट को ग्रुप करने, एक्सेप्शन हैंडल करने और रिपोर्ट जनरेट करने के लिए कई मैक्रो प्रदान करता है। अपनी हल्की प्रकृति के कारण, doctest का उपयोग अक्सर एम्बेडेड डेवलपमेंट, गेम इंजन और उन प्रोजेक्ट्स में किया जाता है जहाँ हर किलोबाइट और कंपाइलेशन का हर मिलीसेकंड मायने रखता है।

2. इंस्टॉलेशन

doctest एक header-only लाइब्रेरी है, इसलिए इंस्टॉलेशन का मतलब सिर्फ हेडर फाइल को आपके प्रोजेक्ट में कॉपी करना है। सबसे आसान तरीका है vcpkg या Conan पैकेज मैनेजर का उपयोग करना, या फिर मैन्युअली फाइल डाउनलोड करना।

तरीका 1: vcpkg के माध्यम से इंस्टॉल करें (अनुशंसित)

# vcpkg इंस्टॉल करें (अगर नहीं है तो):
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh  # Linux/macOS
# या .\bootstrap-vcpkg.bat (Windows)

# doctest इंस्टॉल करें:
./vcpkg install doctest

# CMake के माध्यम से प्रोजेक्ट से जोड़ें:
# find_package(doctest CONFIG REQUIRED)
# target_link_libraries(your_target PRIVATE doctest::doctest)

तरीका 2: Conan के माध्यम से इंस्टॉल करें

# conanfile.txt में जोड़ें:
[requires]
doctest/2.4.11

[generators]
cmake

# इंस्टॉल करें:
conan install . --build=missing

तरीका 3: मैन्युअल इंस्टॉलेशन (सिर्फ फाइल कॉपी करें)

# GitHub से नवीनतम वर्जन डाउनलोड करें:
wget https://raw.githubusercontent.com/doctest/doctest/master/doctest/doctest.h

# फाइल को अपने प्रोजेक्ट की include फोल्डर में रखें
# फिर कोड में इस तरह उपयोग करें:
# #include "doctest.h"

इंस्टॉलेशन के बाद सुनिश्चित करें कि कंपाइलर हेडर फाइल को ढूंढ सके। टेस्ट कंपाइल करने के लिए GCC, Clang या MSVC का कोई भी आधुनिक वर्जन काफी है।

3. त्वरित शुरुआत — न्यूनतम काम करने वाला उदाहरण

test_example.cpp नाम की फाइल बनाएँ और इसमें नीचे दिया गया कोड डालें:

#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
#include "doctest.h"

int factorial(int n) {
    if (n <= 1) return 1;
    return n * factorial(n - 1);
}

TEST_CASE("factorial फंक्शन का परीक्षण") {
    CHECK(factorial(0) == 1);
    CHECK(factorial(1) == 1);
    CHECK(factorial(5) == 120);
    CHECK(factorial(10) == 3628800);
}

कंपाइल करें और रन करें:

g++ -std=c++11 test_example.cpp -o test_example
./test_example

आपको यह आउटपुट दिखेगा:

===========================================================================
[doctest] test cases:    1 |    1 passed |    0 failed |    0 skipped
[doctest] assertions:    4 |    4 passed |    0 failed |
[doctest]                    

अनुशंसाएँ