2015-09-29 4 views
6

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

मैं वर्तमान में चमेली-कल्पना-रिपोर्टर जो प्रत्येक कल्पना फ़ाइल है, जो लगता है कि के बाद उपयोगी और विस्तृत परिणाम देता है उपयोग कर रहा हूँ:

------------------------------------ 
[chrome OS X 10.10 #1-78] PID: 1880 
[chrome OS X 10.10 #1-78] Specs: /**/**/jenkins/workspace/Main Suites/tests/User_Management/smoke_student_does_something.js 
[chrome OS X 10.10 #1-78] 
[chrome OS X 10.10 #1-78] Using SauceLabs selenium server at http://******* 
[chrome OS X 10.10 #1-78] Spec started 
[chrome OS X 10.10 #1-78] 
[chrome OS X 10.10 #1-78] 1 A student can link and unlink to another student account 
[chrome OS X 10.10 #1-78]  ✓ can link to another student account (33 secs) 
[chrome OS X 10.10 #1-78]  ✓ can unlink a student account (14 secs) 
[chrome OS X 10.10 #1-78] 
[chrome OS X 10.10 #1-78] Executed 2 of 2 specs SUCCESS in 46 secs. 
[chrome OS X 10.10 #1-78] SauceLabs results available at http://saucelabs.com/jobs/***************** 

[launcher] 5 instance(s) of WebDriver still running 

कोणमापक मुझे सब के बाद एक काफी बेकार सारांश सांत्वना उत्पादन देता है जैस्मीन रिपोर्ट करता है कि संदर्भ कार्य आईडी और सूचियां + विफलताओं को पार करती हैं।

.... 
[launcher] chrome #1-69 passed 
[launcher] chrome #1-70 failed 1 test(s) 
[launcher] chrome #1-73 passed 
[launcher] chrome #1-71 passed 
[launcher] chrome #1-75 passed 
[launcher] chrome #1-72 passed 
[launcher] chrome #1-79 passed 
[launcher] chrome #1-74 passed 
[launcher] chrome #1-80 passed 
[launcher] chrome #1-81 passed 
[launcher] chrome #1-82 passed 
[launcher] chrome #1-84 passed 
[launcher] chrome #1-83 passed 
[launcher] chrome #1-85 passed 
[launcher] chrome #1-88 passed 
[launcher] chrome #1-87 passed 
[launcher] chrome #1-86 passed 
[launcher] chrome #1-76 passed 
[launcher] chrome #1-89 passed 
[launcher] chrome #1-90 passed 
[launcher] chrome #1-91 passed 
[launcher] chrome #1-92 passed 
[launcher] chrome #1-78 passed 
[launcher] chrome #1-93 passed 
[launcher] chrome #1-95 passed 
[launcher] chrome #1-77 passed 
[launcher] chrome #1-96 passed 
[launcher] chrome #1-94 failed 5 test(s) 
[launcher] overall: 12 failed spec(s) 
[launcher] Process exited with error code 1 
>> 
Warning: Tests failed, protractor exited with code: 1 Use --force to continue. 

मेरे समस्या यह है कि मैं सभी कल्पना फ़ाइलों, नहीं taskIds का एक सारांश देखना चाहते हैं, केवल विफल रही है चश्मा के लिए, और के बाद ही वे चल रहे सभी कार्य पूरा कर लें: यह क्या कोणमापक सारांश लगता है कि है । एमवीपी एक सूची में असफल स्पेक फ़ाइल नाम होगा या एक फ़ाइल को आसानी से पढ़ने के प्रारूप में लिखा जाएगा (xml, html, आदि)। अगली पुनरावृत्ति में मेरे पास "वर्णन" और "यह" ब्लॉक विवरण, त्रुटि कोड, और सॉसेलाब लिंक होगा जो प्रत्येक विफलता के बगल में जैस्मीन रिपोर्टर के समान होगा।

मेरे पास आम तौर पर एक ही नौकरी में सैकड़ों spec फ़ाइलें होती हैं, और सभी व्यक्तिगत परिणामों के माध्यम से केवल यह पता लगाने के लिए कि कौन सी spec फ़ाइल विफल रही है, काफी परेशान है (क्योंकि मुझे लगता है कि स्वचालित रूप से जेनरेट किए गए सारांश में वह जानकारी होनी चाहिए)। मुझे सचमुच "विफलताओं" के लिए कंसोल आउटपुट पर ctrl + f करना है, यह देखने के लिए कि कौन से चश्मा विफल हुए हैं। मैं विफलता सूची के लिए सॉसेलाब पर जाने से बचना चाहता हूं, क्योंकि जेनकिंस के माध्यम से हमारा काम कैसे चलता है। एक बार नौकरी चलने के बाद विफलताओं की सूची के लिए कंसोल आउटपुट एक आसान पहला स्रोत/संदर्भ होना चाहिए।

प्रत्येक तीसरे पक्ष के रिपोर्टर का दायरा केवल spec फ़ाइल स्तर तक ही प्रतीत होता है। प्रत्येक spec फ़ाइल निष्पादित होने के बाद, यह रिपोर्ट करता है, फिर अगली रिपोर्ट को ओवरराइड करने वाले अगले व्यक्ति पर जाता है। मैं एचटीएमएल या एक्सएमएल रिपोर्ट खोलता हूं, और इसमें हमेशा एक स्पेक फ़ाइल के परिणाम होते हैं। मैं कई spec फ़ाइलों के लिए किसी भी जानकारी सारांश में ले जाने के लिए प्रतीत नहीं कर सकता। मैंने "समेकित (सभी)" सेटिंग्स tweaked है, और कोई भी सभी spec फ़ाइलों के लिए एक रिपोर्ट बनाने के लिए प्रतीत होता है। वे एक समय में केवल एक फ़ाइल पर विचार करते हैं।

मैं निम्नलिखित संवाददाताओं साथ प्रयोग किया है:

चमेली-संवाददाताओं

चमेली-कल्पना-रिपोर्टर

चांदा-jasmine2 एचटीएम्एल संवाददाता

चमेली-json-परीक्षण-रिपोर्टर

मैं प्रोटैक्टर "रिपोर्टसमरी" कोड में सीधे हस्तक्षेप करने में सक्षम हूं जो मुझे सबसे ज्यादा चाहता है (इसके अलावा saucelabs लिंक), लेकिन यह आदर्श नहीं है क्योंकि मुझे इसे अपनाने के लिए उन्हें मनाने के लिए होगा। यहां मेरा सारांश दिखता है:

******************** 
* FAILED SPEC(S) * 
******************** 

/Playground/Test_Spec_2.js failed 2 test(s) 
    can log in once 
     FAILURE: Expected false to be true, 'Didn't see home page'. 
     FAILURE: Expected false to be true, 'Didn't see link'. 
    can log in twice 
     PASSED 
    can log in thrice 
     FAILURE: Expected false to be true, 'Didn't see home page'. 

/Playground/Test_Spec_3.js failed 1 test(s) 
    can login 
     FAILURE: Expected false to be true, 'Didn't see home page'. 

******************** 
*  SUMMARY  * 
******************** 
overall: 2/4 failed spec(s) 
******************** 

क्या मुझे उन जैस्मीन संवाददाताओं का उपयोग करने में कुछ याद आ रही है? क्या मेरा ढांचा सिर्फ उन पत्रकारों के साथ काम करने के लिए डिज़ाइन नहीं किया गया है जो मैं चाहता हूं? क्या मुझे बस कुछ विकल्पों के साथ अपने सारांश संवाददाता को गोद लेने के लिए प्रोटैक्टर लोगों को मनाने चाहिए?

+0

मुझे लगता है कि आपकी सर्वश्रेष्ठ शर्त उन स्वरूपकों में से एक पर पुल अनुरोध करना चाहती है जो आप चाहते हैं। मुझे संदेह है कि आप इस तरह के बदलाव को करने के लिए @ जेएमआर को मनाने के लिए प्रतिबद्ध होंगे। – MBielski

उत्तर

0

आपके सभी परीक्षण चलाने के बाद आप सभी रिपोर्ट में शामिल हो सकते हैं।बस सुनिश्चित करें कि आप सभी परीक्षणों आप एक ही फ़ोल्डर

return browser.getCapabilities().then(function (caps) { 
     var sessionId = caps.get('webdriver.remote.sessionid'); 
     var date = dateMethods.getCurrentDate(); 
     var folder = 'test-results/reports-' + date; 
     jasmine.getEnv().addReporter(new yourReporter({ 
      savePath: folder + '/report' + '-' + sessionId.substr(0, 5) 
     })); 
    }); 

तो फिर तुम उन्हें शामिल होने और ("FS" मॉड्यूल या ऐसा ही कुछ प्रयोग करके) फ़ोल्डर हटा सकते हैं अंदर करना चाहते हैं या यह इतना हर बार जब आप चलाने के नाम बदलने आप एक नया फ़ोल्डर

0

मैं इस संवाददाता उपयोग कर रहा हूँ बनाने के लिए: https://www.npmjs.com/package/protractor-jasmine2-screenshot-reporter मैं अपने कल्पना फ़ाइल में इस कोड के साथ दैनिक सब कल्पना फ़ाइलों के लिए पूरी रिपोर्ट है

var HtmlScreenshotReporter = require(process.env['USERPROFILE'] + '/node_modules/protractor-jasmine2-screenshot-reporter'); 
var utils = require('../util/utils.js'); 
var reporter = new HtmlScreenshotReporter({ 
dest: 'target/screenshots_'+ utils.returnToday("_"), 
filename: 'AutoTestRun-report.html' 
}); 

beforeLaunch: function() { 
    return new Promise(function(resolve){ 
     reporter.beforeLaunch(resolve); 
    }); 
    }, 
onPrepare: function() { 
    jasmine.getEnv().addReporter(reporter); 
    browser.driver.manage().window().maximize(); 
    browser.driver.get('https://core.arkcase.dev.armedia.com/arkcase/login'); 
    browser.manage().timeouts().setScriptTimeout(60000); 
}, 

विधि मैं आज लौटने के लिए उपयोग कर रहा हूँ गुना के नाम पर तारीख er है:

this.returnToday = function(sign){ 
     var now = new Date(); 
     var day = ("0" + now.getDate()).slice(-2); 
     var month = ("0" + (now.getMonth() + 1)).slice(-2); 
     return today = (month) + sign + (day) + sign + now.getFullYear(); 
    } 
0

आप जो डिज़ाइन चाहते हैं उसके साथ अपना खुद का संवाददाता बना सकते हैं।

इसके लिए आप निम्न चमेली विधियों को ओवरराइड कर सकते हैं।

self.jasmineStarted = function(summary) { 

}; 

self.suiteStarted = function(suite) { 

}; 

self.specStarted = function(spec) { 

}; 

self.specDone = function(spec) { 

}; 

self.suiteDone = function(suite) { 

}; 

self.jasmineDone = function() { 

}; 

आप अपनी इच्छित जानकारी के साथ अपना खुद का टेम्पलेट बना सकते हैं। मैंने नीचे के लिए एक बनाया है। enter image description here

आप प्रलेखन here से जा सकते हैं।

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