1

如果我protractor在我的机器上运行测试,报告会正确生成并保存屏幕截图。我现在的目标是在我要使用的地方进行自动化测试docker

我的docker-compose.yml长相是这样的

version: '2'

services:
  app:
    image: app
    ports:
      - 9000:9000
  selenium:
    image: selenium/standalone-chrome
    ports:
      - 4444:4444
    volumes:
      - /dev/shm:/dev/shm
  protractor:
    volumes:
      - ./tmp:/assets/tmp
    image: test
    command: "dockerize -wait http://selenium:4444 -wait http://app:9000 -timeout 60m protractor /assets/conf.js" 

这样做的问题是报告和屏幕截图没有保存到卷中。如果docker我不使用量角器的图像,而是使用本地图像,它可以与应用程序和硒图像一起正常工作。

出于测试目的,我在我的卷(本地)上手动添加了该文件夹,并且可以看到该文件夹​​正在被删除,所以我假设链接是正确的。

conf.js作为 onPrepare添加看起来像的记者的方法

onPrepare: function() {
        jasmine.getEnv().addReporter(new HtmlReporter({
            baseDirectory: '/assets/tmp/screenshots'
        }));
    }
}

使用的记者是protractor-html-screenshot-reporter

我的问题是问题可能出在哪里,报告路径,权限等,以及什么可能是修复或替代方法

提前致谢

4

1 回答 1

1

经过一些调试发现jasmine版本不同(本地和 docker 映像)并且没有触发创建屏幕截图的方法。

由于使用(vs )protractor安装的时间,版本不同。npm install -g protractor2.5.14.0.13

protractor使用版本创建图像2.5.1修复了该问题。

于 2016-12-16T14:56:40.543 回答