2016-01-10 13 views
0

Я новичок в codeceptJS, но лучше всего могу сказать, что это просто не работает с выходом.codeceptJS/webdriverIO выдает скрипт с командами захвата

'use strict'; 
Feature('Testing Begins'); 
Before((I) => { 
    I.resizeWindow(1500, 1000); 
    I.amOnPage('http://absolutenet.com'); 
}); 

Scenario('ANI testing', function*(I){ 
    I.waitForText('bring your site to life'); 
    I.amOnPage('http://www.absolutenet.com/'); 
    let title = yield I.grabTitle(); 
    console.info(title); 
    I.see('bogus text that is not there'); 
}); 

Я пробовал несколько команд захвата, а также executeScript. Я знаю, что команды работают, потому что по какой-то причине одна или две строки выполняются после выхода, поэтому я могу вывести переменную, которую я назначаю. Однако я никогда не смогу использовать его, потому что браузер закрывается, и скрипт завершается. Хуже того, я могу поставить тест, который явно недействителен (I.see («некоторый фиктивный несуществующий текст»);) и сценарий выходит с успехом!

Вышеуказанное является живым, поэтому вы можете выполнить его, чтобы увидеть проблему. Тестирование с Linux и FireFox, если это имеет значение.

Может ли кто-нибудь дать мне пример использования урожая и продолжения теста?

ОБНОВЛЕНИЕ: Разработчик говорит, что это ошибка, и она будет исправлена ​​в ближайшее время.

+0

Какой тестовый бегун вы используете с помощью WebdriverIO? Используете ли вы mocha или встроенный wdio? – jrader

+0

Я не совсем уверен, как ответить на вопрос. Это не codeceptionJS. Я считаю, что codeceptJS является тестируемым. –

ответ

2

я вижу следующее в ридми CodeceptJS:

С CodeceptJS ваш сценарий управляемой функциональны и приемочные испытания будет максимально простым и чистым, как они могут быть. Вам не нужно беспокоиться об асинхронном характере NodeJS или о различных API-интерфейсах Selenium, PhantomJS, транспортир и т. Д., Поскольку CodeceptJS объединяет их и делает их работают так, как они были синхронными.

Таким образом, для проведения теста не требуется урожай. CodeceptJS является оберткой вокруг WebdriverIO, которая заботится об этих асинхронных задачах для вас. Вы должны быть в состоянии сделать следующее:

Scenario('ANI testing', function*(I){ 
    I.waitForText('bring your site to life'); 
    I.amOnPage('http://www.absolutenet.com/'); 
    I.seeInTitle('my page title'); 
}); 

http://codecept.io/basics/

Хотя, ради попытки ответить на ваш вопрос более тщательно, codeceptJS имеет большой пример использования генераторов:

Scenario('use page title', function*(I) { 
    // ... 
    var password = yield I.grabTextFrom('#password'); 
    I.fillField('password', password); 
}); 

http://codecept.io/acceptance/

+0

Абсолютно ваш код будет работать. Однако, я считаю, вы пропустили ту часть, где грабители не работают. Я ДОЛЖЕН иметь возможность захватывать данные из элементов, а также возвращать информацию из executeScript. Есть примеры, когда я должен использовать JavaScript для вычисления результата и проверки, чтобы убедиться, что он правильный. Это невозможно сделать без урожайности, а урожай выдает скрипт. Я использовал только I.grabTitle() как простой пример, демонстрирующий ошибку. –

+0

Разработчик говорит, что это ошибка. Я обновил вопрос. Довольно серьезная ошибка, так как она остановила нас на наших треках ... :( –