无法在 docker 容器中创建量角器测试报告

Not able to create report on protractor tests in docker container

如果我 运行 在我的机器上 protractor 进行测试,则会正确生成报告并保存屏幕截图。我的 objective 现在是在我要使用 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 图像作为量角器,而是使用本地图像,它可以与应用程序和 selenium 图像一起正常工作。

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

我的conf.js作为方法onPrepare添加报告者

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

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

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

提前致谢

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

版本不同是因为 protractor 是使用 npm install -g protractor 安装的(2.5.14.0.13)。

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