c++ - हडसन, सी++ और यूनिटटेस्ट++




unit-testing continuous-integration (4)

मैं CppUnit और xml आउटपुट के साथ हडसन का उपयोग करता हूं। एक्सएमएल का अनुवाद xslt द्वारा एक जुनीट आउटपुट में किया जाता है। CppUnit साइट एक xslt प्रदान करती है जो CppUnit आउटपुट को JUnit आउटपुट में परिवर्तित करती है। मैंने विवरणों को प्राप्त करने के लिए इसे थोड़ा सा हैक किया है:

  • पैकेज के रूप में नामस्थान
  • निष्पादन समय

आप निम्नलिखित प्राप्त करने के लिए अपने एक्सएमएल आउटपुट को बदल सकते हैं:

<?xml version="1.0" encoding="UTF-8"?>
<testsuite>
   <testcase name="my test name"
             classname="Package1.Package2.TestClass"
             time="0.25">
      <error type="error"/>
   </testcase>
   ....
</testsuite>

सफलता के मामले में: बस उप टैग हटा दें

सादर

क्या किसी ने UnitTest++ का प्रयोग परीक्षण पुस्तकालय के रूप में सी ++ प्रोजेक्ट के लिए एक सतत-एकीकरण सर्वर के रूप में Hudson उपयोग किया है?

आपने इसे कैसे सेट किया?

मुझे पता है कि पहले निरंतर एकीकरण पर कई सवाल हैं, लेकिन मुझे आशा है कि इस के पास एक संक्षिप्त दायरा है।

संपादित करें: मैं जो कुछ ढूंढ रहा हूं उस पर थोड़ा सा स्पष्टीकरण दूंगा। यूनिट-टेस्ट विफल होने पर मेरे पास पहले से ही विफल होने का सेट सेट है। मैं हडसन के जुनीट समर्थन की तरह कुछ ढूंढ रहा हूं। यूनिटटेस्ट ++ एक्सएमएल रिपोर्ट बना सकता है ( here देखें)। तो, शायद अगर कोई जानता है कि इन रिपोर्टों का अनुवाद ज्यूनिट संगत होने के लिए कैसे किया जाए, तो हडसन को यह पता चलेगा कि इसे कैसे खाया जाए?


मैंने xUnit प्लगइन की जांच की, क्योंकि पैट्रिक जॉनमेयर ने स्वीकृत उत्तर में सुझाव दिया था। पूर्णता के लिए, ड्राइवर कोड यहां है:

#include <fstream>
#include "UnitTest++.h"
#include "XmlTestReporter.h"

int main( int argc, char *argc[] ) {
    std::ofstream f("file.xml");
    UnitTest::XmlTestReporter reporter(f);
    return UnitTest::RunAllTests(reporter, UnitTest::Test::GetTestList(), NULL, 0);
}

हडसन कॉन्फ़िगरेशन में, "परीक्षण उपकरण परिणाम रिपोर्ट प्रकाशित करें" की जांच करें और इसे "file.xml"



हम अपने कार्यस्थल पर सक्रिय रूप से ऐसा कर रहे हैं।

वर्तमान में, हम एक फ्री-स्टाइल सॉफ्टवेयर प्रोजेक्ट का उपयोग करते हैं:

  • हर 15 मिनट में अपडेट के लिए हमारे सबवर्जन रिपोजिटरी देखें
  • एक समाधान फ़ाइल को साफ और बनाने के लिए विंडोज बैच फ़ाइल पर कॉल करें
    • प्रोजेक्ट फाइलें पोस्ट-बिल्ड इवेंट के रूप में इकाई परीक्षणों का निर्माण और संचालन करती हैं
    • यूनिट परीक्षण विफलताओं को परीक्षण main() द्वारा वापस किया जाता है, इस प्रकार बिल्ड त्रुटियों के रूप में माना जाता है

मैंने एक कॉन्फ़िगरेशन का भी परीक्षण किया है जो आउटपुट फ़ाइलों को उत्पन्न करने के लिए यूनिटटेस्ट ++ के साथ XmlTestReporter का उपयोग करता है। XUnit प्लगइन मूल रूप से इस आउटपुट का समर्थन करता है, साथ ही आप किसी भी अन्य आउटपुट को कन्वर्ट कर सकते हैं, हालांकि मुझे एक्सएसएल फाइल को बदलना था जो संस्करण 0.1.3 में परीक्षण इतिहास में दर्ज की गई अवधि प्राप्त करने के लिए आया था।

हमारे एकीकरण के बारे में बहुत सी चीजें हम सुधारना चाहते हैं; बिल्ड लॉग लंबे रंग और किसी भी रंग या हाइलाइटिंग आदि के साथ पार्स करने के लिए कठिन नहीं हैं, लेकिन अब तक यह हमारे लिए फायदेमंद रहा है।





jenkins