Electron 在GitlabCI上运行测试时ChromeDriver出现问题
我是Gitlab CI的新手,我正在尝试在提交时自动测试我的应用程序 我不知道它是如何工作的,我知道它使用docker图像,并运行您想要的命令 我选择了节点:8图像开始(我正在做一个电子项目,可能有更好的图像) 问题是,如果我在我的计算机上运行命令“npmtest”,它运行得很好,并且所有测试都通过了,但是它在gitlab ci作业中不起作用,我不知道为什么 我在windows上开发这个,docker镜像使用linux,这可能是个问题吗 错误总是发生在ChromeDriver上。我查找了文件夹,发现只有一个exe,所以我下载了驱动程序的linux发行版并将其插入其中。 在运行测试之前,我也会执行驱动程序(在我的计算机中,这是不需要的,它会自动执行),但仍然会得到相同的错误 我迷路了。有没有其他办法可以让它起作用?也许是另一张docker的照片 My gitlab-ci.yml:Electron 在GitlabCI上运行测试时ChromeDriver出现问题,electron,gitlab-ci,spectron,Electron,Gitlab Ci,Spectron,我是Gitlab CI的新手,我正在尝试在提交时自动测试我的应用程序 我不知道它是如何工作的,我知道它使用docker图像,并运行您想要的命令 我选择了节点:8图像开始(我正在做一个电子项目,可能有更好的图像) 问题是,如果我在我的计算机上运行命令“npmtest”,它运行得很好,并且所有测试都通过了,但是它在gitlab ci作业中不起作用,我不知道为什么 我在windows上开发这个,docker镜像使用linux,这可能是个问题吗 错误总是发生在ChromeDriver上。我查找了文件夹,
variables:
VERSION_ID: '1.0.$CI_PIPELINE_ID'
stages:
- build
build:
image: node:8
stage: build
artifacts:
paths:
- $CI_PROJECT_DIR/dist/*.*
script:
- apt-get update
- apt-get -y install libnss3-dev
- npm install
- chmod 0777 ./node_modules/.bin/mocha
- chmod 0777 ./node_modules/electron-chromedriver/bin/chromedriver
- ./node_modules/electron-chromedriver/bin/chromedriver&
- npm test
获得的错误:
测试代码(如果这是相关的)
硒可以做什么?
例如,如果您的electron应用程序是民意测验,那么使用selenium,您可以:
- 验证民意测验应用程序是否显示10个问题。如果检测到负10,则抛出一个错误
- 如果您的问题是必需的,您可以确保当按下提交按钮时,每个问题旁边都会出现红色警告。如果提交操作未触发警告和/或表单已提交,则引发错误
- 开发人员使用selenium语言实现(java、nodejs、python等)创建一些测试
- 选择了具有正确浏览器安装的机器(称为selenium机器)。在此机器中,必须至少安装一个浏览器及其相应的SeleniumDriver。OperaChromiunDriver for opera、firefox的FirefoxDriver等
- 在selenium机器中,必须使用正确的配置启动selenium服务器。此服务器发布一种带有用户和密码的url
- 在开发者笔记本电脑上,您可以使用配置在selenium机器上执行测试
- 在开发阶段,您可以避免使用selenium服务器,因为您的笔记本电脑上已经有了所有必需的人员。但是,如果您在企业或组织中,则不可能或不推荐在您的笔记本电脑上运行测试。想象一下你自己在凌晨2:00在笔记本电脑上运行你工作的所有web应用程序的测试。另一方面,设想您的持续集成服务器在凌晨2:00运行几十个测试,并向您发送一个带有结果的漂亮仪表板
你的问题 我在windows上开发,docker镜像使用linux,这可能是个问题? Windows不是开发的最佳选择。默认浏览器“向导”安装将在开发阶段帮助您,但如果您升级到下一阶段“测试/生产”则没有任何像样的云提供商尝试为selenium测试或世界上的任何技术提供WINDOWS。众所周知,windows中对docker的支持非常差。我建议你使用linux,它对我们这样的程序员来说非常酷 我迷路了。有没有其他办法可以让它起作用?也许是另一张docker图片? 你在用电子显影。Electron是一种“浏览器”,因此Selenium是自动化测试的最佳选择 问题是,如果我在我的计算机上运行命令“npm test”,它运行得很好,并且所有测试都通过了,但是它在gitlab ci作业中不起作用,我不知道为什么。 因为您的测试代码执行的是视觉测试,这需要一台带有视觉浏览器及其相应的selenium驱动程序的机器
我必须做什么才能让它工作? www.browserstack.com 总而言之,browserstack为您提供了一个包含大量桌面和android浏览器的selenium服务器。通过几行代码,您的测试将运行它browserstack cloud,您将拥有一个仪表板,其中包含结果和视频,作为错误的证明 以下是一些备选方案: 实现您自己的selenium服务器 正如我所说,您需要一台具有用户界面、浏览器、selenium驱动程序等的机器 无头浏览器 如果您没有机器或browserstack不是您的选择,您可以研究:无头浏览器 总而言之,无头浏览器是一种内存中的浏览器实现,因此您可以在没有用户界面(azure、amazon、google等)的shell中执行测试 无论如何,您将需要selenium驱动程序和其他配置来实现您的测试在没有用户界面、没有chrome、firefox、opera等的机器上运行 这种方法的缺点是浏览器在内存中实现。无法识别web或javascript的某些很酷的功能。例如:拖放效果。如果没有用户界面,该如何工作:S?。如果只是简单的表单,无头浏览器可以帮助您 以下是一些选项: