硒设置与 drone.io 0.6



我正在尝试为我的节点.js应用程序设置Selenium测试,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

我正在使用这样的硒网络驱动程序:

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不起作用,因为它是不同的容器(。有没有办法指定在无人机中运行管道的容器的主机名?或者以某种其他方式使主容器可从服务访问?

谢谢。

您需要下载drone/drone:latest以确保您拥有最新的补丁集(对于将来阅读本文的人来说,drone/drone:0.7或更高(。

在您的示例中使用 yaml(复制如下(,Selenium 将能够在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是非阻塞的,并且不会阻塞 shell 会话。有关更多详细信息,请参阅 http://veithen.github.io/2014/11/16/sigterm-propagation.html。

希望这有帮助!

相关内容

  • 没有找到相关文章

最新更新