2017-12-19 19 views
0

JavaScript와 각도기를 처음 접했을 때 나는 cucmber js로 각도기를 사용하고 있습니다. 각도기 프로세스가 종료지고,npm ERR 받기! errno 199 오이 프레임 워크로 각도기를 실행할 때

[2017-12-19T23:59:36.696] [INFO] default - TOTAL NAV LINKS ARE ARE:5 [2017-12-19T23:59:36.818] [INFO] default - ACTUAL PAGES:Home,Applications,Programs,Reports,Admin Tools, [2017-12-19T23:59:36.821] [INFO] default - EXPECTED PAGES:Home,Applications,Programs,Reports,Admin Tools,a [23:59:36] E/launcher - expected 'Home,Applications,Programs,Reports,Admin Tools,' to equal 'Home,Applications,Programs,Reports,Admin Tools,a' [23:59:36] E/launcher - AssertionError: expected 'Home,Applications,Programs,Reports,Admin Tools,' to equal 'Home,Applications,Programs,Reports,Admin Tools,a' at C:/HancockSoftwareAutomation/mdmf_automation_bdd/mdmf_e2e_gui_testing/stepDefinitions/navaigation_bar_steps.js:74:49 at elementArrayFinder_.then (C:\HancockSoftwareAutomation\mdmf_automation_bdd\mdmf_e2e_gui_testing\node_modules\protractor\built\element.js:804:32) at ManagedPromise.invokeCallback_ (C:\HancockSoftwareAutomation\mdmf_automation_bdd\mdmf_e2e_gui_testing\node_modules\selenium-webdriver\lib\promise.js:1376:14) at TaskQueue.execute_ (C:\HancockSoftwareAutomation\mdmf_automation_bdd\mdmf_e2e_gui_testing\node_modules\selenium-webdriver\lib\promise.js:3084:14) at TaskQueue.executeNext_ (C:\HancockSoftwareAutomation\mdmf_automation_bdd\mdmf_e2e_gui_testing\node_modules\selenium-webdriver\lib\promise.js:3067:27) at asyncRun (C:\HancockSoftwareAutomation\mdmf_automation_bdd\mdmf_e2e_gui_testing\node_modules\selenium-webdriver\lib\promise.js:2927:27) at C:\HancockSoftwareAutomation\mdmf_automation_bdd\mdmf_e2e_gui_testing\node_modules\selenium-webdriver\lib\promise.js:668:7 at at process._tickCallback (internal/process/next_tick.js:188:7) [23:59:36] E/launcher - Process exited with error code 199 npm ERR! code ELIFECYCLE npm ERR! errno 199

의 때문에 NPM의 errno는 199 추가 시나리오를 실행 중지 할 수 있습니다 :

Then(/^I verified all pages visible to logged in user$/,() => { 

    var expVisibleNavPages = 'Home,Applications,Programs,Reports,Admin Tools,a'; 

    var NavLinks = element.all(by.css('ul.nav.navbar-nav')).get(0).all(by.css('a')); 

    var len =0; 

    NavLinks.then(function(result) { 
      len = result.length; 
      logger.info("TOTAL NAV LINKS ARE ARE:"+len); 
     }); 


    var actVisibleNavPages = ""; 
    var iCt = 0; 


    NavLinks.each(function (element) { 

     element.getText().then(function(text){ 

     actVisibleNavPages += text+","; 
     iCt++; 

      if (len === iCt) 
      { 
       logger.info("ACTUAL PAGES:"+actVisibleNavPages); 

       logger.info("EXPECTED PAGES:"+expVisibleNavPages); 

       return expect(actVisibleNavPages).to.equal(expVisibleNavPages); 
      } 



     }); 


    }); 

내가 울부 짖는 오류가 발생했습니다 : 내가 문제를 얻고 것은 코드 아래에 있습니다.

도움을 요청하십시오.

답변

0

내가 좋아하는 아래의 코드를 업데이트하고 일 : 회신

Then(/^I verified all pages visible to logged in user$/,() => { 

    var expVisibleNavPages = ["Home","Applications","Programs","Reports","Admin Tools","a"]; 

    let actVisibleNavPages = element.all(by.css('ul.nav.navbar-nav')).get(0).all(by.css('a')); 

    var promise = new Promise(function (resolve) { 
     setTimeout(resolve, 200, actVisibleNavPages.getText()); 
    }); 


    return expect(promise).to.eventually.deep.equal(expVisibleNavPages); 

}); 
1

오류 로그는 자체적으로 설명됩니다. 귀하의 스크립트는 가정, 응용 프로그램, 프로그램, 보고서, 관리 도구를 포함하여 5 개의 "NavLinks"만 찾았으며 예상 값은 "a"라는 다른 개체가있는 6이었습니다. 어설 션 오류가 발생합니다.

+0

감사합니다, 나는 의도적으로이 주장을 실패하게 만들었습니다. 문제는 어설 션이 실패한 다음 분도기가 다른 시나리오를 종료하고 계속해서는 안되지만이 Protactor 프로세스에서 npm 오류 199가 발생하여 gettig가 종료됩니다. 어설 션이 실패한 다른 단계에서 프로토 타이터가 해당 시나리오를 실패하고 다음 시나리오를 계속 진행합니다. 그래서 내 질문은 어설 션 실패 protracror 프로세스 종료를 방지하는 방법입니다. – Shailendra

+0

오류 199는 캐치되지 않는 예외로 보이므로'protractor.config'에'ignoreUncaughtExceptions = true' 속성을 추가 할 수 있습니다. 그런 다음 분도기는이 어설 션 오류가 발생하면 다음 시나리오로 진행합니다. 바라기를 바랍니다. – quyentx