2016-06-01 4 views
0

Я использую NightWatch, чтобы проверить, что ячейка таблицы на странице содержит число больше 0.nightwatchjs с вызовом утверждают browser.end() на AssertionError

Для достижения этой цели я должен использовать пакет Assert узла :

const assert = require('assert'); 

Итак, сначала я получаю текст элемента ячейки таблицы, и в обратный вызов я анализирую его в Int и использовать утверждают, чтобы проверить его значение:

... 
    .getText("//table[@id='topology-summary-table']/tbody/tr/td[7]", function(el){ 
     assert(parseInt(el.value) > 0, "Num Executors == 0!"); 
    }).end() 
... 

Единственная проблема с этим что если assert выбрасывает AssertionError (то есть: если число в ячейке таблицы равно 0), тогда тест останавливается, и .end() никогда не вызывается, что оставляет процесс браузера открытым и висит вокруг. Не идеально.

Я получил вокруг этого факта, выполнив следующие действия:

... 
    .getText("//table[@id='topology-summary-table']/tbody/tr/td[7]", function(el){ 
     try { 
      assert(parseInt(el.value) > 0, "Num Executors == 0!"); 
     } catch(e){ 
      this.end(); 
      throw e; 
     } 
    }) 
... 

, но по некоторым причинам это заставляет меня чувствовать себя плохо. :(

Мой вопрос:. Есть ли лучший способ

ответ

0

Nightwatch апи фактически расширяет Assert API, так что нет никакой необходимости require это

Вместо этого:

.getText("//table[@id='topology-summary-table']/tbody/tr/td[7]", function(el){ 
    this.assert.ok(parseInt(el.value) > 0, "Num Workers == 0!"); 
}) 

Ответа на этот вопрос beatfactor здесь: https://github.com/nightwatchjs/nightwatch/issues/1002#issuecomment-223240103

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