2016-08-15 5 views
6

के माध्यम से जैस्मीन \ कर्म के लिए टाइपस्क्रिप्ट परीक्षण कैसे चला सकता हूं मेरे पास हमारे निर्माण करने के लिए टाइपस्क्रिप्ट में कोडित बोवर/एनपीएम/गल्प के साथ कोणीय 1.5 का उपयोग करके एक वेब एप्लिकेशन है। हमारा बैक एंड एक सी # नेट वेबएपी 2 है। दोनों TFS2015 पर बनाए और तैनात हैं। मेरा सी # एनयूनिट परीक्षण बिल्ड प्रक्रिया के हिस्से के रूप में एकीकृत करने के लिए आसान है। टाइपस्क्रिप्ट जैस्मीन यूनिट परीक्षण हालांकि एकीकृत करना अधिक कठिन होता है। टीएफएस बिल्ड के हिस्से के रूप में चलाने के लिए मैं अपने टाइपस्क्रिप्ट जैस्मीन यूनिट परीक्षण कैसे प्राप्त करूं और यदि वे असफल हो जाते हैं, तो बिल्ड विफल हो जाते हैं? हमने उन्हें जैस्मीन स्पेक धावक और कर्म के माध्यम से भी चलाया है लेकिन एकीकृत नहीं है।मैं एक टीएफएस बिल्ड प्रक्रिया

मैंने स्टैक्स ओवरफ्लो पर जावास्क्रिप्ट यूनिट परीक्षणों को एकीकृत करने पर कई पोस्ट पढ़ी हैं और प्रत्येक एवेन्यू ने मुझे एक अत्यधिक जटिल समाधान के माध्यम से लिया है जो काम नहीं करता है। इनमें पावरहेल स्क्रिप्ट्स, चुट्जपाह शामिल हैं।

उत्तर

7

बिल्ड सर्वर पर चुट्जपाह के माध्यम से स्पीक्रुनर को फिर से बनाने की कोशिश करने के बजाय, जिसे मुझे कॉन्फ़िगर करना और काम करना मुश्किल लगता है। इसका उद्देश्य कर्म को 'टीआरएक्स' परीक्षण प्रारूप में चल रहे परीक्षणों को आउटपुट करना था जिसे टीएफएस पहचानता है और फिर उन्हें बिल्ड में प्रकाशित करता है। कृपया ध्यान दें कि मैं कर्म के माध्यम से अपने परीक्षण चलाने के लिए फैंटॉमजे का उपयोग कर रहा हूं लेकिन यहां इसे कवर नहीं किया जाएगा क्योंकि यह कहीं और अच्छी तरह से कवर किया गया है।

1) अपने वेब परियोजना (या इसी तरह प्लगइन)

2) Karma.config कॉन्फ़िगर TRX संवाददाता

reporters: ['dots', 'trx'], 

trxReporter: { outputFile: 'test-results.trx' }, 

// notify karma of the available plugins 
plugins: [ 
    'karma-jasmine', 
    'karma-phantomjs-launcher', 
    'karma-trx-reporter', 
], 

3) एक Gulp बनाएं शामिल करने के लिए में NPM के माध्यम से karma-trx-reporter plugin स्थापित (या गड़बड़ी) कर्म परीक्षणों को चलाने के लिए कार्य यदि आपके पास पहले से कोई नहीं है। कार्य को स्थानीय रूप से चलाएं और जांचें कि यह ऊपर निर्दिष्ट 'test-results.trx' बनाता है। (इसका कोई प्रभाव नहीं है, जहां फ़ाइल निर्माण सर्वर पर बनाई गई है):

gulp.task('test', function() { 
    return gulp.src(['tests/*.js']).pipe(karma({ 
     configFile: __dirname + '/Testing/karma.config.js', 
     singleRun: true 
    })); 
}); 

4) एक Gulp (जोड़ें या ग्रंट) TFS पिछले चरण और उत्पादन TRX में बनाए गए कर्म परीक्षण चलाने के लिए कार्य का निर्माण फ़ाइल। enter image description here

5) परीक्षण परिणामों को प्रकाशित करने और उन्हें निर्माण में विलय करने के लिए एक गुल (या ग्रंट) टीएफएस बिल्ड कार्य जोड़ें। ध्यान दें कि "टेस्ट परिणाम फाइल" पथ एक जंगली कार्ड **/*। Trx है जो कि पथ पथ में किसी भी trx फ़ाइलों को ढूंढने के लिए है (यानी हमारी पिछली बनाई गई फ़ाइल पाता है)। हमारे परीक्षण जैस्मीन परीक्षण चलाने और हमारे सी # परीक्षण को उसी सत्र में चलाने के लिए "टेस्ट परिणाम मर्ज करें" की जांच की जाती है। "त्रुटि पर जारी रखें" किसी भी चमेली परीक्षण विफलताओं के निर्माण को तोड़ने के लिए अनचाहे है।

enter image description here

आप परीक्षण है कि चलाने की है और शामिल निर्माण के हिस्से के रूप के दो सेट देखेंगे!

enter image description here

+0

चरणों के लिए धन्यवाद। मेरे पास रिमोट वीएम पर चल रहे कर्म परीक्षण हैं। क्या आप जानते हैं कि उन्हें नियंत्रक को वापस कैसे प्राप्त करें ताकि बिल्ड Trx फ़ाइल पा सके? – Aligned

+0

आपके पास दो विकल्प हैं; आउटपुट को बदलना Karma.config की फ़ाइल संपत्ति या, टेस्ट परिणाम फाइलों को बदलने के लिए परीक्षण परीक्षा परिणाम टीएफएस बिल्ड कार्य की संपत्ति। विकल्प आपके चल रहे परीक्षणों को बिल्ड एजेंट के समान मशीन पर ले जाना है। वह मेरा पसंदीदा विकल्प था। मेरे पास प्रोजेक्ट में कर्मा-पेंटोमज प्लगइन्स स्थापित हैं इसलिए परीक्षण चलाने के लिए कोई अतिरिक्त डाउनलोड \ config नहीं है। – sarin

+0

यहां मुझे यह लिखना है कि मुझे क्या करना है: https://gooroo.io/GoorooTHINK/Article/17028/Karma-Test-Results-with-TFS-build/25020#.V9vpEyErJhE – Aligned

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