我是Gitlab CI的新手,我正在尝试在提交时自动测试我的应用程序。
我不知道它是如何工作的,我知道它使用了docker镜像并且可以运行所需的命令。
我选择了node:8图像作为开始图像(我正在做一个电子投影,也许对此有更好的图像)
问题是,如果我在计算机上运行命令“ npm test”,它可以很好地运行并且可以通过所有测试,但是它不能在gitlab ci上正常工作,我也不知道为什么。
我正在Windows上进行开发,而docker映像使用linux,这可能是个问题吗?
ChromeDriver总是会发生错误。我查找了该文件夹,发现其中只有一个exe,因此我下载了该驱动程序的linux发行版并将其插入其中。 我还在运行测试之前执行了驱动程序(在我的计算机上是不需要的,它会自动执行),并且仍然会出现相同的错误。
我很迷路。还有其他办法可以工作吗?也许是另一个Docker映像?
我的gitlab-ci.yml:
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
答案 0 :(得分:3)
例如,如果您的电子应用是民意测验,则可以使用硒:
我正在Windows上进行开发,而docker映像使用linux,这可能是个问题吗?
Windows不是开发的最佳选择。默认的浏览器“向导”安装将在开发过程中为您提供帮助,但是如果您升级到下一阶段的“测试/生产”,则没有任何像样的云提供商尝试为硒测试或任何技术提供WINDOWS。世界。众所周知,Windows对Docker的支持非常差。我建议您使用https://elementary.io/的Linux,这对像我们这样的程序员来说非常酷!
我很迷路。还有其他办法可以工作吗?也许是另一个Docker映像?
您正在使用电子进行显影。电子是一种“浏览器”,因此硒是自动化测试的最佳选择。
问题是,如果我在计算机上运行命令“ npm test”,它可以很好地运行并且可以通过所有测试,但是它无法在gitlab ci作业上正常工作,我也不知道为什么
。因为您的测试代码执行了 VISUAL TESTS (视觉测试),因此需要一台具有可视浏览器的计算机及其相应的硒驱动程序。
作为总结,browserstack为您提供了带有许多台式机和android浏览器的硒服务器。只需几行代码,您的测试就可以在浏览器堆栈云上运行它,并且您将拥有一个仪表板,其中包含结果和视频,以证明错误。
以下是一些替代方案:https://alternative.me/browserstack
正如我所说,您将需要一台带有用户界面,浏览器,硒驱动程序等的机器
如果您没有计算机或浏览器堆栈,则可以进行以下研究:无头浏览器
作为总结,无头浏览器是内存中的一种浏览器实现,因此您可以在没有用户界面(azure,amazon,google等)的shell中执行测试。
无论如何,您将需要selenium驱动程序其他配置来实现您的测试在没有用户界面,chrome,firefox,opera等的计算机上运行。
此方法的缺点是浏览器在内存中的实现。您的网络或javascript的一些很酷的功能无法识别。例如:拖放效果。如果没有用户界面,该如何工作:S?。如果只是简单的表单,无头浏览器可以为您提供帮助。
有些选项: