I have two folders in my e2e for two different web projects. I am using cypress.config.js in the source root to define my base Urls. Problem is I need to use different URLs for each different project inside the e2e folder.
cypress-tests-mobile\cypress\e2e\EW
cypress-tests-mobile\cypress\e2e\FW
The config file looks like this :
const { defineConfig } = require("cypress");
module.exports = defineConfig({ defaultCommandTimeout: 30000, "reporter": "cypress-mochawesome-reporter", "reporterOptions": {
"charts": true,
"reportPageTitle": "Cypress Tests",
"embeddedScreenshots": true,
"inlineAssets": true }, e2e: {
setupNodeEvents(on, config) {
require("cypress-mochawesome-reporter/plugin")(on);
const version = config.env.version || "prodFW";
const urls = {
prodFW: "https://www.url1.com/",
prodEW: "https://www.url2.com/",
};
// choosing version from urls object
config.baseUrl = urls[version];
Whenever I run the tests i just use --env version like this and it runs fine.
yarn cypress run --env version="prodEW"
First problem I have is that no matter from where I execute yarn cypress run, it always executes all tests in the e2e folder and the other project always fails since getting wrong baseUrl. Im running it from "\cypress-tests-mobile\cypress\e2e\FW"
I was trying to solve it with different approaches
- making cypress.config.js for each of the projects in e2e folder
that didnt work because whenever I open cypress, I get a message that there is no config and creates a sample cypress.config.js in my source folder.
make nested list
const urls = { prod: [ [ prodFW: "https://www.url1.com/", prodEW: "https://www.url2.com/" ], ], };
and for each of the projects i would access the correct URL like this
Cypress.config("baseUrl")[0]
Cypress.config("baseUrl")[1]
but then upon starting i get following error
Your configFile at cypress.config.js set an invalid value:
Expected baseUrl to be a fully qualified URL (starting with http:// or https://).
I am not sure how to handle this so I would be happy for any advice.
Is it generally bad idea having two different websites in e2e?
Thank you
From the documentation Test Configuration
so one option you have is to leave
baseUrlempty incypress.config.jsand each spec file specify the correct value it needs forbaseUrl.Other choices are (via command line)
Specify the config file
Specify the config item for specPattern