2014-11-26 4 views
2

Я хочу проверить НЕ без головы, но я не могу этого сделать.Простой тест WebdriverIO - Mocha не отображает браузер

Код стартовый хром-браузер. НЕ безголовый. ОК.

// test.js 

var webdriverio = require('webdriverio'); 

var options = { 
    desiredCapabilities: { 
    browserName: 'chrome' 
    } 
}; 

webdriverio 
    .remote(options) 
    .init() 
    .url('http://www.google.com') 
    .title(function(err, res) { 
    console.log('Title was: ' + res.value); 
    }) 
    .end(); 

Код ниже (Мокко тестовый код) не запускается хром браузер от $ mocha test.js.

Безголовый. NG.

Но тест проходит! Я не понимаю этого.

Я проверил журнал Selenium Server, но он не показывает (слева) любой журнал. Нет следов.

// test-mocha.js 

var expect = require('expect.js'); 
var webdriverio = require('webdriverio'); 

var options = { 
    desiredCapabilities: { 
    browserName: 'chrome' 
    } 
}; 

describe('WebdriverIO Sample Test', function() { 
    it('should return "Google"', function() { 
    webdriverio 
     .remote(options) 
     .init() 
     .url('http://www.google.com') 
     .title(function(err, res) { 
     var title = res.value; 
     expect(title).to.be('Google'); 
     }) 
     .end(); 
    }) 
}); 

Результат теста, как показано ниже:

WebdriverIO Sample Test 
    ✓ should return "Google" 

    1 passing (4ms) 

ответ

6

webdriver.io является асинхронным. Измените свой тест, чтобы пометить его как асинхронный, и используйте обратный вызов done после завершения всех проверок в тесте. Эти два изменения: 1. добавьте done в качестве параметра к функции, которую вы передаете it, и 2. добавьте вызов done() после вызова expect.

it('should return "Google"', function (done) { // <- 1 
    webdriverio 
     .remote(options) 
     .init() 
     .url('http://www.google.com') 
     .title(function(err, res) { 
     var title = res.value; 
     expect(title).to.be('Google'); 
     done(); // <- 2 
     }) 
     .end(); 
    }) 

Без этого, мокко думает ваш тест является синхронным, так что просто завершает тест перед webdriverio делает свою работу.

+0

Отлично! Это сработало! Благодаря! – weed

+0

Хотя это кажется очевидным, это слишком смутило меня, что все тесты успешно завершены. Так что спасибо за вопрос и ответ! – SGD

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