Настройка Selenium с помощью Drone.io 0.6

Я пытаюсь настроить тестирование Selenium для своего приложения node.js с помощью drone.io в следующем примере: http://docs.drone.io/selenium-example/.

Мой .drone.yml выглядит так:

pipeline:
  test:
    image: node:latest
    commands:
      - yarn install
      - yarn build
      - yarn start
      - yarn test

services:    
  selenium:
    image: selenium/standalone-chrome

И я использую selenium-webdriver следующим образом:

const driver = new webdriver.Builder()
  .withCapabilities(webdriver.Capabilities.chrome())
  .usingServer(`http://selenium:4444/wd/hub`)
  .build();

describe('Home page', () => {
  before(async () => await driver.get(`http://127.0.0.1:8080`));  // FIXME
  it('should render greeting', async () => {
    const src = await driver.getPageSource();
    chai.expect(src).contains('Hey there!');
  });
  after(async () => await driver.quit());
});

Теперь проблема в том, что Selenium не знает URI, в котором запущено приложение (очевидно, http://127.0.0.1:8080 не работает, так как это другой контейнер). Есть ли способ указать имя хоста контейнера, на котором запущен конвейер в дроне? Или как-то иначе сделать основной контейнер доступным из сервисов?

Спасибо.


person Dmitri Maltsev    schedule 15.05.2017    source источник


Ответы (1)


Вам нужно будет загрузить drone/drone:latest, чтобы убедиться, что у вас установлен последний набор исправлений (или drone/drone:0.7 или выше для тех, кто будет читать это в будущем).

Используя yaml в вашем примере (скопировано ниже), селен сможет получить доступ к вашему приложению узла в http://test:8080, где test — это имя шага конвейера и имя сетевого хоста.

pipeline:
  test:
    image: node:latest
    commands:
      - yarn install
      - yarn build
      - yarn start
      - yarn test
services:    
  selenium:
    image: selenium/standalone-chrome

Еще один совет: убедитесь, что yarn start не блокирует и не блокирует сеанс оболочки. Для получения дополнительной информации см. http://veithen.github.io/2014/11/16/sigterm-propagation.html.

Надеюсь это поможет!

person Brad Rydzewski    schedule 17.05.2017
comment
Большое спасибо за исправление этого Брэда, теперь он отлично работает! - person Dmitri Maltsev; 17.05.2017