量angular器 – 每次运行后都不能读取未定义属性“headerPrinter”的exception

我真的不知道这个例外的原因是什么,它的副作用是什么。 但是即使所有的testing用例都通过了,每次都会出现。 请帮忙弄清楚如何解决这个问题 –

[launcher] Error: TypeError: Cannot read property 'headerPrinter' of undefined at printHeader (C:\automation\tests\node_modules\protractor-console\dist\protractor-console.js:81:8) at C:\automation\tests\node_modules\protractor-console\dist\protractor-console.js:56:19 at [object Object].promise.ControlFlow.runInFrame_ (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:1877:20) at [object Object].promise.Callback_.goog.defineClass.notify (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:2464:25) at [object Object].promise.Promise.notify_ (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:563:12) at Array.forEach (native) at Object.goog.array.forEach (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\array\array.js:203:43) at [object Object].promise.Promise.notifyAll_ (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:552:16) at goog.async.run.processWorkQueue (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\async\run.js:125:21) at runMicrotasksCallback (node.js:337:7) [launcher] Process exited with error code 100 

在这里输入图像说明

量angular器conf:

 //-=-=-=- Packages -=-=-=- var path = require('path'); var fs = require('fs'); var HtmlReporter = require('protractor-html-screenshot-reporter'); var util = require('util'); var Imap = require('imap'), inspect = require('util').inspect; var MailParser = require("mailparser").MailParser; var MailListener = require("mail-listener2"); var log_file = fs.createWriteStream('c:\\automation\\tests\\' + '/emailResponses.log', {flags : 'w'}); // var log_exceptions = fs.createWriteStream('c:\\automation\\tests\\' + '/exceptions.log', {flags : 'w'}); var log_stdout = process.stdout; //-=-=-=- Helpers -=-=-=- captureScreen = function(name){ browser.driver.takeScreenshot().then(function(data){ var base64Data = data.replace(/^data:image\/png;base64,/,""); return browser.getCapabilities().then(function (cap) { var fname = name + "-" + cap.caps_.browserName + ".png"; fs.writeFile(fname, base64Data, 'base64', function(err) { if(err) console.log(err); }); }); }); } waitPageToLoad = function(){ browser.driver.manage().timeouts().pageLoadTimeout(60000); } getLastEmail = function() { var deferred = protractor.promise.defer(); console.log("Waiting for an email..."); mailListener.on("mail", function(mail){ deferred.fulfill(mail); }); return deferred.promise; }; // -=-=- Testing configuration -=-=- exports.config = { chromeDriver: 'npm/node_modules/protractor/selenium/chromedriver', chromeOnly: false, seleniumAddress: 'http://localhost:4444/wd/hub', specs: ['c:\\automation\\tests\\frontageSanity.js'], plugins: [{ package: 'C:\\automation\\tests\\node_modules\\protractor-console', logLevels: ['severe', 'warning'] }], // directConnect: true, multiCapabilities: [{ // 'browserName': 'firefox', // 'cli': { // 'args': ['webdriver.firefox.useExisting=default', '-jsconsole', '-jsdebugger'] // }}, // } // { 'browserName': 'chrome', 'chromeOptions': { args: ['--no-sandbox','--test-type','--memory-metrics','--console','--crash-on-failure'], // '--load-extension=' + 'C:\\Users\\idan\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Extensions\\idgpnmonknjnojddfkpgkljpfnnfcklj\\1.2.4_0' prefs: { download: { 'prompt_for_download': false, 'directory_upgrade': true, 'default_directory': 'C:\\automation\\tests\\downloaded\\' } } } // }, // { // 'browserName': 'internet explorer', // 'platform': 'ANY', // 'version': '12' }], framework: "jasmine", allScriptsTimeout: 90000, getPageTimeout: 90000, // -=-=- Pre-Conditions & Tools configurations -=-=- onPrepare: function() { //-=-=-=- HTML Reporter -=-=-=- jasmine.getEnv().addReporter(new HtmlReporter({ baseDirectory: 'C:\\automation\\tests\\HtmlReporter\\', // takeScreenShotsOnlyForFailedSpecs: true, docTitle: 'vCita - Sanity testing report', docName: 'Test_Report.html', cssOverrideFile: 'htmlReporter_css.css' })); browser.driver.manage().window().maximize(); browser.getCapabilities().then(function (cap) { browser.browserName = cap.caps_.browserName; }); // -=-=-=- Email Listener - here goes your email connection configuration -=-=-=- var mailListener = new MailListener({ username: "username", password: "password", host: "imap.gmail.com", port: 993, // imap port tls: true, tlsOptions: { rejectUnauthorized: false }, mailbox: "INBOX", // mailbox to monitor // searchFilter: ["UNSEEN", "FLAGGED"], // the search filter being used after an IDLE notification has been retrieved markSeen: true, // all fetched email willbe marked as seen and not fetched next time fetchUnreadOnStart: true, // use it only if you want to get all unread email on lib start. Default is `false`, // mailParserOptions: {streamAttachments: true}, // options to be passed to mailParser lib. // attachments: true, // download attachments as they are encountered to the project directory // attachmentOptions: { directory: "attachments/" } // specify a download directory for attachments }); mailListener.start(); mailListener.on("server:connected", function(){ console.log("imapConnected"); }); mailListener.on("server:disconnected", function(){ console.log("imapDisconnected"); }); mailListener.on("mail", function(){ // console.log("GO IT!"); }); mailListener.on("mail", function(mail, seqno, attributes){ // do something with mail object including attachments console.log("emailParsed", mail) // mail processing code goes here log_file.write(util.format(mail)); log_stdout.write(util.format(mail)); }); global.mailListener = mailListener; }, // onCleanUp: function () { // mailListener.stop(); // }, // -=-=- Node JS Settings -=-=- jasmineNodeOpts: { onComplete: function () { mailListener.stop(); }, // If true, display spec names. isVerbose: true, // If true, print colors to the terminal. showColors: true, // If true, include stack traces in failures. includeStackTrace: true, // Default time to wait in ms before a test fails. defaultTimeoutInterval: 9999999 } } 

您需要安装和使用的软件包称为protractor-console-plugin ,而不是protractor-console