【发布时间】:2020-05-16 17:45:07
【问题描述】:
我是 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
【问题讨论】:
-
嗨。如果您使用的是 chrome 驱动程序,当您运行本地测试(windows)时,会打开一个 chrome 浏览器并执行一些操作(单击、填写表单等),最后会退出浏览器并在您的 shell 中报告?
-
@JRichardsz 我现在不执行任何操作,但是是的,打开了一个 chrome 浏览器(它是一个电子应用程序,所以我想是等效的)
-
Chrome 驱动通常与 selenium 相关。 Selenium 通常用于质量保证团队,其目标是通过 web/html 表单和/或 javascript 代码进行可视化自动化(测试)。通常,这些测试是在打开的浏览器中执行的,人类可以看到在浏览器中执行的操作(就像有人在移动您的鼠标一样)。您的目标是:对您的电子应用程序进行可视化测试验证,还是只为您的 javascript 代码编写单元测试?
-
是的,这就是目标。 @JRichardsz
-
您的电子应用程序的可视化测试验证或者只是为您的 javascript 代码编写单元测试?
标签: electron gitlab-ci spectron