无法在 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.1
与 4.0.13
)。
使用 protractor
版本 2.5.1
创建图像修复了问题。
如果我 运行 在我的机器上 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.1
与 4.0.13
)。
使用 protractor
版本 2.5.1
创建图像修复了问题。