2016-09-02 5 views
1

Как мы можем справиться с ошибкой в ​​каркасе с прокладчиком - огурец?Транспортир - обработка ошибок в фреймворке

Есть утвердительные отказы, которые являются подлинными неудачами, и есть ошибки в javascript-коде (например, элемент не найден, массив пуст, что-то неопределенное и т. Д.). Я хочу обработать позже в изящной манере.

В настоящее время испытания улавливателя не соответствуют указанным ошибкам, но сообщения не дружелюбны и трудно понять. Они в основном указывают на место ошибки в файлах библиотеки транспортир и не там, где произошла фактическая ошибка в скрипте (имя файла, номер строки и т.д.)

например

"NoSuchElementError: No element found using locator: By(css selector, .listContainer li:nth-child(1) span)">NoSuchElementError: No element found using locator: By(css selector, .listContainer li:nth-child(1) span) 
    at WebDriverError (node_modules\protractor\node_modules\selenium-webdriver\lib\error.js:27:10) 
    at NoSuchElementError (node_modules\protractor\node_modules\selenium-webdriver\lib\error.js:242:10) 
    at node_modules\protractor\built\element.js:705:27 
    at ManagedPromise.invokeCallback_ (node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:1379:14) 
    at TaskQueue.execute_ (node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2913:14) 
    at TaskQueue.executeNext_ (node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2896:21) 
    at node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2775:27 
    at node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:639:7 
    at process._tickCallback (node.js:369:9)Error 

Когда я что-то вроде этого, чтобы справиться ошибка -

return selectAll.click().then(function(){ 

      }, function(err){ 
       console.log('error occured..'); 
       console.log(err); 
      }); 

Ошибка сообщается, но тест проходит. Я хочу, чтобы он потерпел неудачу, а также изложил ошибку изящно.

ответ

3

Вы можете сделать это, выбросив ошибку в свой первый обратный вызов!

Вы могли бы сделать что-то вроде этого -

return selectAll.click().then(function(){ 

     }, function(err){ 
      throw new Error('Error occurred!'); //this would fail the step definition as well 
     }); 

 Смежные вопросы

  • Нет связанных вопросов^_^