2016-12-15 36 views
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

我的问题是问题,其中可能是,在报告中,权限等什么路径可以修复或替代办法提前

+0

我的直接想法是权限,但是,由于目录正在被删除,看起来像是有足够的访问权限。 – alecxe

+0

@alecxe在'tmp'文件夹中,我添加了2个空文件夹,其中一个是'screenshots'。那个正在被删除,就像在本地流量中一样,但是不会像应该那样添加。其他文件夹保持不变,这导致我认为路径和权限是正确的。对于我能做些什么不同的想法,以获得关于此问题的更多见解? – taguenizy

+1

@alecxe这是'茉莉花'版本的问题。 – taguenizy

回答

1

由于经过一番调试发现jasmine版本是不同的(本地和码头图片),并没有触发创建屏幕截图的方法。

版本不同,因为当使用npm install -g protractor2.5.1 vs 4.0.13)安装protractor时。

使用protractor版本2.5.1修复该问题。