Набор тестов транспортира/огурца перестает работать, когда ожидание не выполняется в обещании. Затем

Я работаю над средой тестирования, которая использует Protractor (v 0.24.1), Cucumber (v 0.4.0), Chai (v 1.9.1) и Chai-as-promise (v 4.1.1).

Selinium-server-standalone.jar (v 2.41.0) chromedriver (v 2.10)

На этом этапе я проверяю количество двумя разными способами. Один в то время обещания, а второй способ использует библиотеку chai-as-promised для проверки подсчета.

element.all(by.css('[ticket-id]')).then(function (tickets) {
    expect(tickets.length).to.equal(2, "length correct");
    //expect(tickets.length).to.equal(3, "length wrong");
});
expect(element.all(by.css('[ticket-id]')).count()).to.eventually.to.equal(2).and.notify(next);

Это проходит, и я получаю сообщение:

1 scenario (1 passed)
3 steps (3 passed)
Process finished with exit code 0

Теперь, когда я меняю ожидание внутри, тогда все умирает.

element.all(by.css('[ticket-id]')).then(function (tickets) {
    //expect(tickets.length).to.equal(2, "length correct");
    expect(tickets.length).to.equal(3, "length wrong");
});

Теперь я получаю только сообщение:

Process finished with exit code 1

Этот сбой останавливает выполнение теста без трассировки стека или чего-либо, что могло бы помочь в отладке. Кто-нибудь знает, почему или способ обойти это?

Мы смотрим на обновление Protractor, которое может помочь.


person Brad8118    schedule 29.07.2014    source источник
comment
Обновление для других, Брэд открыл эту проблему на HitGub, которая была закрыта, так как решена в огурце. v0.4.7.   -  person Steve Eynon    schedule 14.10.2015


Ответы (1)


Приведенное ниже решение решает вашу проблему:

element.all(by.css('[ticket-id]')).then(function (tickets) {
    expect(tickets.length).to.equal(2, "length correct");
    //expect(tickets.length).to.equal(3, "length wrong");
}).catch(function(err){
    callback(err);
});
expect(element.all(by.css('[ticketid]')).count()).to.eventually.to.equal(2).and.notify(next);

person Munish    schedule 16.03.2017