I am trying to run UI automated test using NodeJs, Selenium and Chrome as a part of GitLab CI/CD pipeline. Test runs on local machine fine but throws error while running in CI/CD
Config.Js
module.exports.getDriver = function () {
const { Capabilities, Builder } = require("selenium-webdriver");
const chromeCapabilities = Capabilities.chrome();
chromeCapabilities.set("acceptInsecureCerts", true);
let builder = new Builder();
if (process.env.WEBDIRVER_SERVER) {
builder = builder.usingServer(process.env.WEBDIRVER_SERVER);
}
return builder.forBrowser('chrome').withCapabilities(chromeCapabilities).build();
}
module.exports.base_url = process.env.TEST_BASE_URL || 'https://dev.mycompany.com';
Package.json
{
"name": "my-selenium-tests",
"version": "1.0.0",
"description": "Selenium tests",
"private": true,
"scripts": {
"test": "mocha --recursive --timeout 300000"
},
"repository": {
"type": "git",
"url": "git@my.gitlab.com/my-selenium-tests.git"
},
"dependencies": {
"axios": "^0.27.2",
"chromedriver": "^105.0.1",
"selenium-webdriver": "^4.4.0"
},
"devDependencies": {
"mocha": "^10.0.0"
}
}
GitLab Pipeline
test:
image: node
stage: test
environment:
name: dev
services:
- selenium/standalone-chrome
cache:
paths:
- node_modules/
variables:
NODE_ENV: test
script:
- cd ${CI_PROJECT_DIR}/tests/postdeploy
- npm ci --include=dev
- WEBDIRVER_SERVER=http://selenium__standalone-chrome:4444 npm test
rules:
- if: $CI_COMMIT_REF_NAME == "dev"
