currents-dev / cypress-cloud Goto Github PK
View Code? Open in Web Editor NEWDebug, troubleshoot and record Cypress CI tests in Cloud
Home Page: https://currents.dev
License: Other
Debug, troubleshoot and record Cypress CI tests in Cloud
Home Page: https://currents.dev
License: Other
Capture projectId
from currents.config.js
default export or from CURENTS_PROJECT_ID env variable, if set and not empty
# Put output below this line
Prevent duplicated warning when there's no currens.config.js
Prevent duplicated warning when there's no currens.config.js
Prevent duplicated warning when there's no currens.config.js
// Put your logs below this line
The promise returned from cypress.run
can be rejected because cypress couldn't run a spec file
https://docs.cypress.io/guides/guides/module-api#Handling-errors
We'd be able to produce an "empty" result for such failures and send it back with as much details as possible - e.g. create an artificial "empty" test with an error.
When an individual cypress run fails at isSuccessResult, we want to:
We need to collect git information in a way that is similar to how cypress does it, see getCommitFromGitOrCi in cypress repo.
Today we only use @cypress/commit-info
package without referring to CI variables. The implementation will be used to collect git information when creating a new run, see const res = await axios.post("http://localhost:1234/runs", {
The current implementation cuts the stdout before running a spec.
We want to store the stdout and prepend every subsequent stdout, so the final result will be initial stdout (before running first spec) + the current spec execution
Think about a unit test, event though it can be tricky...if have a good idea - please unit test it
According to https://docs.cypress.io/guides/guides/command-line#Exit-code the main process should exit with:
The exit code should accumulate all cypress invocation for all the spec files
# Put output below this line
On node 16.13.1 I get:
TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".json" for /Users/xxxx/node_modules/cypress/package.json
Is node 17+ a requirement?
On node 18.15.0
TypeError [ERR_IMPORT_ASSERTION_TYPE_MISSING]: Module "file:///Users/xxxxx/node_modules/cypress/package.json" needs an import assertion of type "json"
https://github.com/lpanger/cypress-cloud-module-api
cypress-cloud 1.4.5-beta.1
cypress 12.8.1
clone repo and run node index.js
Importing ESM modules should not throw on major node versions
N/A
// Put your logs below this line
When running
npx cypress-cloud run --parallel --record --key somekey --ci-build-id hello-cypress
we obtain a connection error as follows
Discovered 7 spec files
Tags: false; Group: false; Parallel: true; Batch Size: 3
Connecting to cloud orchestration service...
WARNING Network request failed: 'connect ECONNREFUSED 127.0.0.1:80'. Next attempt is in 15s (1/3).
This is the currents.config.js
file
module.exports = {
projectId: 'some-project', // the projectId
recordKey: 'some-key', // the record key, can be any values for sorry-cypress users
// Sorry Cypress users - set the director service URL
cloudServiceUrl: 'http:://localhost:1234',
};
Director is running via docker with command
docker run -p 1234:1234 agoldis/sorry-cypress-director
cypress cloud version is 1.4.4
Expected is that cypress runs and multiple agents can be started in parallel.
Thank you in advance for your time
From https://sorry-cypress.slack.com/archives/C04F7LJ1E3H/p1671443824388969
User was confused by specifying the projectId both in currents.config.js and env variable.
Related to #26
# Put output below this line
When running cypress-cloud with --tag it runs the tests but the tag do not appear on the sorry cypress dashboard.
Tested with version 1.4.1
The given tag to get to the cypress dashboard.
I run with pnpm the following command
pnpm cypress-cloud --parallel --key=$CURRENTS_RECORD_KEY run --config-file cypress.ci.config.ts --ci-build-id $CI_BUILD_ID --tag $TAGS
where $TAGS is a simple string like "my-tag"
// Put your logs below this line
Discovered 62 spec files
Tags: 12.0.40-renovate-sentry1; Group: false; Parallel: true; Batch Size: 3
Connecting to cloud orchestration service...
2023-03-10T12:16:58.989Z currents:ci {
branch: 'debug-cypress-cloud',
remoteOrigin: '<snip>',
authorEmail: '<snip>',
authorName: '<snip>,
message: 'Try debugging cypress cloud run\n',
sha: '5cd49b9f34dda4c7acb44e7b6f303ba30476611b'
}
Tags: 12.0.40-debug-cypress-cloud2; Group: false; Parallel: true; Batch Size: 3
Connecting to cloud orchestration service...
2023-03-10T12:16:58.991Z currents:api network request: { method: 'POST', url: '/runs', data: { ci: { params: {}, provider: null }, specs: [<snip-long-list-of-specs> ], commit: { branch: 'debug-cypress-cloud', remoteOrigin: '<snip>', authorEmail: '<snip>', authorName: '<snip>', message: 'Try debugging cypress cloud run\n', sha: '5cd49b9f34dda4c7acb44e7b6f303ba30476611b' }, group: undefined, platform: { osName: 'linux', osVersion: 'Debian - 11.6', osCpus: [Array], osMemory: [Object], browserName: 'Electron', browserVersion: '106.0.5249.51' }, parallel: true, ciBuildId: '802398842', projectId: '<snip>', recordKey: '<snip>', specPattern: [ 'cypress/e2e/**/*.cy.{js,jsx,ts,tsx}' ], tags: [ '12.0.40-debug-cypress-cloud2' ], testingType: 'e2e', batchSize: 3 } }
2023-03-10T12:16:59.052Z currents:api network request response: { status: 200, statusText: 'OK', headers: AxiosHeaders { 'x-powered-by': 'Express', 'content-type': 'application/json; charset=utf-8', 'content-length': '222', etag: 'W/"de-EBGeqnexR1Ku41cko97e093D8kA"', date: 'Fri, 10 Mar 2023 12:16:59 GMT', connection: 'close' }, data: { groupId: '802398842', machineId: 'b280fb2a-47fc-42bb-b18d-069fdccc52aa', runId: '33b57bfd10d28f269c7594bae08969d0', runUrl: '<snip>', isNewRun: true, warnings: [] } }
2023-03-10T12:16:59.052Z currents:capture resetting captured stdout
2023-03-10T12:16:59.053Z currents:api network request: { method: 'POST', url: 'runs/33b57bfd10d28f269c7594bae08969d0/instances', data: { runId: '33b57bfd10d28f269c7594bae08969d0', groupId: '802398842', machineId: 'b280fb2a-47fc-42bb-b18d-069fdccc52aa', platform: { osName: 'linux', osVersion: 'Debian - 11.6', osCpus: [Array], osMemory: [Object], browserName: 'Electron', browserVersion: '106.0.5249.51' } } }
2023-03-10T12:16:59.085Z currents:api network request response: { status: 200, statusText: 'OK', headers: AxiosHeaders { 'x-powered-by': 'Express', 'content-type': 'application/json; charset=utf-8', 'content-length': '147', etag: 'W/"93-KTvAcqoDNZM8DgbxZOtFGiHav2E"', date: 'Fri, 10 Mar 2023 12:16:59 GMT', connection: 'close' }, data: { spec: '<snip>', instanceId: '6e6e42be-3d3d-4890-b47d-daf1f3b108a9', claimedInstances: 1, totalInstances: 62 } }
We use capture
utility to capture the console output, need to verify that we only send stdout that is relevant for a spec file - i.e. we "cut" the stdout after each execution.
# Put output below this line
Typescript can't seem to find the types for the plugin:
#65 (comment)
No errors for typescript.
Follow the installation steps where cypress is configured to use typescript for its config files.
https://github.com/currents-dev/cypress-cloud#setup
where cypress uses cypress.config.ts
// Put your logs below this line
Generating a new run requires the collection of CI environment information:
https://github.com/currents-dev/cypress-cloud/blob/main/packages/cypress-runner/index.ts#L79
We need a standalone package that replicates cypress behaviour. See https://github.com/cypress-io/cypress/blob/afb66abc7023ce71e2893cb6de67d24706ff7a1f/packages/server/lib/modes/record.js#L301
This package will be used to populate the outgoing "create run" request.
# Put output below this line
System:
OS: macOS 13.2.1
CPU: (8) arm64 Apple M1 Pro
Memory: 2.11 GB / 32.00 GB
Shell: 5.8.1 - /bin/zsh
Binaries:
Node: 18.2.0 - /usr/local/bin/node
Yarn: 1.22.19 - ~/Code/aprilon-web/node_modules/.bin/yarn
npm: 8.9.0 - /usr/local/bin/npm
Browsers:
Brave Browser: 110.1.48.171
Chrome: 111.0.5563.64
Firefox: 110.0.1
Safari: 16.3
npmPackages:
@cypress/angular: 0.0.0-development
@cypress/grep: ^3.1.4 => 3.1.4
@cypress/mount-utils: 0.0.0-development
@cypress/react: 0.0.0-development
@cypress/react18: 0.0.0-development
@cypress/svelte: 0.0.0-development
@cypress/vue: 0.0.0-development
@cypress/vue2: 0.0.0-development
@faker-js/faker: ^7.5.0 => 7.6.0
@types/node: ^18.14.0 => 18.14.1 (14.18.36)
@types/pdf-parse: ^1.1.1 => 1.1.1
cypress: ^12.5.1 => 12.5.1
cypress-cloud: ^1.4.2 => 1.4.2
cypress-mailosaur: ^2.13.0 => 2.13.0
dayjs: ^1.11.7 => 1.11.7
fs: ^0.0.1-security => 0.0.1-security
pdf-parse: ^1.1.1 => 1.1.1
typescript: ^4.9.5 => 4.9.5
npmGlobalPackages:
corepack: 0.10.0
npm: 8.9.0
I'm using cypress with Typescript. So I tried to create a currents.config.ts
but Andrew in currents chat told me it wasn't supported and that I should rename it to 'currents.config.js` as it's only supporting js files.
Then, when running the command:
% npx cypress-cloud run -s cypress/e2e/test.cy.ts --record --ci-build-id test-001 -k <key>
ERROR Resolving cypress configuration failed:
{
stdout: [
'Your configFile is invalid: /Users/stephane.colson/Code//e2e/cypress.config.ts',
'',
'It threw an error when required, check the stack trace below:',
'',
'TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for /Users/stephane.colson/Code/e2e/cypress.config.ts',
...
My cypress.config.ts contains this:
import { defineConfig } from 'cypress';
import { cloudPlugin } from 'cypress-cloud/plugin';
import { readPdf } from './cypress/support/readPdf';
export default defineConfig({
projectId: '<key>', // currents
e2e: {
setupNodeEvents(on: Cypress.PluginEvents, config: Cypress.PluginConfigOptions) {
const items = {};
on('task', {
readPdf,
setItem({ name, value }) {
if (typeof value === 'undefined') {
throw new Error(`Cannot store undefined value for item "${name}"`);
}
items[name] = value;
return null;
},
getItem(name) {
if (name in items) {
return items[name];
}
const msg = `Missing item "${name}"`;
console.error(msg);
throw new Error(msg);
},
});
return cloudPlugin(on, config);
},
baseUrl: 'https://<url/',
....
and my currents.config.js
is:
// currents.config.ts
module.exports = {
projectId: '<ID>', // ProjectID obtained from https://app.currents.dev or Sorry Cypress
recordKey: '<key>', // Record key obtained from https://app.currents.dev, any value for Sorry Cypress
cloudServiceUrl: 'https://cy.currents.dev', // Sorry Cypress users - the director service URL
// e2e: {
// batchSize: 3, // orchestration batch size for e2e tests (Currents only)
// },
// component: {
// batchSize: 5, // orchestration batch size for component tests (Currents only)
// },
};
We should be able to use a TypeScript currents.config.ts
or be able to use a Javascript one in a TypeScript project.
npx cypress-cloud run -s cypress/e2e/test.cy.ts --record --ci-build-id test-001 -k
// Put your logs below this line
% DEBUG=currents:*,cypress:* npx cypress-cloud run -s cypress/e2e/test.ts --record --ci-build-id test-001 -k <key>
currents:config loading currents config file from '/Users/stephane.colson/Code//e2e/currents.config.js' +0ms
cypress:cli exporting Cypress module interface +0ms
currents:cli parsed CLI flags { component: false, e2e: true, parallel: false, record: true, spec: [ 'cypress/e2e/test.ts' ], ciBuildId: 'test-001', key: '<key>' } +0ms
currents:config loading currents config file from '/Users/stephane.colson/Code//e2e/currents.config.js' +213ms
currents:capture capturing stdout +0ms
currents:cli parsed run params: { parallel: false, record: true, spec: [ 'cypress/e2e/test.ts' ], ciBuildId: 'test-001', key: '<key>', config: undefined, env: undefined, reporterOptions: undefined, testingType: 'e2e', projectId: 'SU67I3', batchSize: 3 } +2ms
currents:index run api params { parallel: false, record: true, spec: [ 'cypress/e2e/test.ts' ], ciBuildId: 'test-001', key: '<key>', config: undefined, env: undefined, reporterOptions: undefined, testingType: 'e2e', projectId: 'SU67I3', batchSize: 3 } +0ms
currents:config resolving cypress config +2ms
currents:boot booting cypress... +0ms
currents:boot booting cypress with args: [ 'run', '--spec', 'lreuvhtvhq', '--env', '{"currents_temp_file":"/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I","currents_port":19503,"currents_debug_enabled":"true"}', '--e2e' ] +2ms
currents:boot cypress executable location: /Users/stephane.colson/Code//e2e/node_modules/cypress/bin/cypress +1ms
currents:boot read config temp file failed: Error: Is cypress-cloud/plugin installed? at bootCypress (/Users/stephane.colson/Code//e2e/node_modules/lib/bootstrap.ts:70:13) at getConfig (/Users/stephane.colson/Code//e2e/node_modules/lib/config.ts:58:19) at run (/Users/stephane.colson/Code//e2e/node_modules/index.ts:45:18) +1s
ERROR Resolving cypress configuration failed:
{
stdout: [
'Your configFile is invalid: /Users/stephane.colson/Code//e2e/cypress.config.ts',
'',
'It threw an error when required, check the stack trace below:',
'',
'TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for /Users/stephane.colson/Code//e2e/cypress.config.ts',
' at new NodeError (node:internal/errors:377:5)',
' at Object.getFileProtocolModuleFormat [as file:] (node:internal/modules/esm/get_format:80:11)',
' at defaultGetFormat (node:internal/modules/esm/get_format:122:38)',
' at defaultLoad (node:internal/modules/esm/load:21:20)',
' at ESMLoader.load (node:internal/modules/esm/loader:431:26)',
' at ESMLoader.moduleProvider (node:internal/modules/esm/loader:350:22)',
' at new ModuleJob (node:internal/modules/esm/module_job:66:26)',
' at ESMLoader.#createModuleJob (node:internal/modules/esm/loader:369:17)',
' at ESMLoader.getModuleJob (node:internal/modules/esm/loader:328:34)',
' at processTicksAndRejections (node:internal/process/task_queues:95:5)',
' at async Promise.all (index 0)',
' at async ESMLoader.import (node:internal/modules/esm/loader:409:24)',
' at async importModuleDynamicallyWrapper (node:internal/vm/module:435:15)',
' at async loadFile (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/packages/server/lib/plugins/child/run_require_async_child.js:106:14)',
' at async EventEmitter.<anonymous> (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/packages/server/lib/plugins/child/run_require_async_child.js:116:32)',
''
],
stderr: [
'2023-03-10T08:42:57.787Z cypress:cli:cli cli starts with arguments ["/usr/local/bin/node","/Users/stephane.colson/Code//e2e/node_modules/cypress/bin/cypress","run","--spec","lreuvhtvhq","--env","{\\"currents_temp_file\\":\\"/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I\\",\\"currents_port\\":19503,\\"currents_debug_enabled\\":\\"true\\"}","--e2e"]',
'2023-03-10T08:42:57.788Z cypress:cli NODE_OPTIONS is not set',
'2023-03-10T08:42:57.788Z cypress:cli:cli program parsing arguments',
`2023-03-10T08:42:57.791Z cypress:cli:cli running Cypress with args [ Command { _events: [Object: null prototype] { 'option:browser': [Function (anonymous)], 'option:ci-build-id': [Function (anonymous)], 'option:component': [Function (anonymous)], 'option:config': [Function (anonymous)], 'option:config-file': [Function (anonymous)], 'option:e2e': [Function (anonymous)], 'option:env': [Function (anonymous)], 'option:group': [Function (anonymous)], 'option:key': [Function (anonymous)], 'option:headed': [Function (anonymous)], 'option:headless': [Function (anonymous)], 'option:no-exit': [Function (anonymous)], 'option:parallel': [Function (anonymous)], 'option:port': [Function (anonymous)], 'option:project': [Function (anonymous)], 'option:quiet': [Function (anonymous)], 'option:record': [Function (anonymous)], 'option:reporter': [Function (anonymous)], 'option:reporter-options': [Function (anonymous)], 'option:spec': [Function (anonymous)], 'option:tag': [Function (anonymous)], 'option:dev': [Function (anonymous)] }, _eventsCount: 22, _maxListeners: undefined, commands: [], options: [ [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option] ], parent: Command { _events: [Object: null prototype], _eventsCount: 1, _maxListeners: undefined, commands: [Array], options: [Array], parent: null, _allowUnknownOption: false, _args: [], rawArgs: [Array], _scriptPath: '/Users/stephane.colson/Code//e2e/node_modules/cypress/bin/cypress', _name: 'cypress', _optionValues: {}, _storeOptionsAsProperties: true, _passCommandToAction: true, _actionResults: [], _actionHandler: null, _executableHandler: false, _executableFile: null, _defaultCommandName: null, _exitCallback: null, _aliases: [], _hidden: false, _helpFlags: '-h, --help', _helpDescription: 'display help for command', _helpShortFlag: '-h', _helpLongFlag: '--help', _hasImplicitHelpCommand: undefined, _helpCommandName: 'help', _helpCommandnameAndArgs: 'help [command]', _helpCommandDescription: 'display help for command', _usage: '<command> [options]', args: [Array], [Symbol(kCapture)]: false }, _allowUnknownOption: false, _args: [], rawArgs: null, _scriptPath: null, _name: 'run', _optionValues: {}, _storeOptionsAsProperties: true, _passCommandToAction: true, _actionResults: [], _actionHandler: [Function: listener], _executableHandler: false, _executableFile: null, _defaultCommandName: null, _exitCallback: null, _aliases: [], _hidden: false, _helpFlags: '-h, --help', _helpDescription: 'display help for command', _helpShortFlag: '-h', _helpLongFlag: '--help', _hasImplicitHelpCommand: 0, _helpCommandName: 'help', _helpCommandnameAndArgs: 'help [command]', _helpCommandDescription: 'display help for command', _usage: '[options]', _description: 'Runs Cypress tests from the CLI without the GUI', _argsDescription: undefined, exit: true, spec: 'lreuvhtvhq', env: '{"currents_temp_file":"/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I","currents_port":19503,"currents_debug_enabled":"true"}', e2e: true, args: [], [Symbol(kCapture)]: false } ]`,
`2023-03-10T08:42:57.839Z cypress:cli:cli variable-length opts parsed { args: [ '/usr/local/bin/node', '/Users/stephane.colson/Code//e2e/node_modules/cypress/bin/cypress', 'run', '--spec', 'lreuvhtvhq', '--env', '{"currents_temp_file":"/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I","currents_port":19503,"currents_debug_enabled":"true"}', '--e2e' ], opts: Command { _events: [Object: null prototype] { 'option:browser': [Function (anonymous)], 'option:ci-build-id': [Function (anonymous)], 'option:component': [Function (anonymous)], 'option:config': [Function (anonymous)], 'option:config-file': [Function (anonymous)], 'option:e2e': [Function (anonymous)], 'option:env': [Function (anonymous)], 'option:group': [Function (anonymous)], 'option:key': [Function (anonymous)], 'option:headed': [Function (anonymous)], 'option:headless': [Function (anonymous)], 'option:no-exit': [Function (anonymous)], 'option:parallel': [Function (anonymous)], 'option:port': [Function (anonymous)], 'option:project': [Function (anonymous)], 'option:quiet': [Function (anonymous)], 'option:record': [Function (anonymous)], 'option:reporter': [Function (anonymous)], 'option:reporter-options': [Function (anonymous)], 'option:spec': [Function (anonymous)], 'option:tag': [Function (anonymous)], 'option:dev': [Function (anonymous)] }, _eventsCount: 22, _maxListeners: undefined, commands: [], options: [ [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option] ], parent: Command { _events: [Object: null prototype], _eventsCount: 1, _maxListeners: undefined, commands: [Array], options: [Array], parent: null, _allowUnknownOption: false, _args: [], rawArgs: [Array], _scriptPath: '/Users/stephane.colson/Code//e2e/node_modules/cypress/bin/cypress', _name: 'cypress', _optionValues: {}, _storeOptionsAsProperties: true, _passCommandToAction: true, _actionResults: [], _actionHandler: null, _executableHandler: false, _executableFile: null, _defaultCommandName: null, _exitCallback: null, _aliases: [], _hidden: false, _helpFlags: '-h, --help', _helpDescription: 'display help for command', _helpShortFlag: '-h', _helpLongFlag: '--help', _hasImplicitHelpCommand: undefined, _helpCommandName: 'help', _helpCommandnameAndArgs: 'help [command]', _helpCommandDescription: 'display help for command', _usage: '<command> [options]', args: [Array], [Symbol(kCapture)]: false }, _allowUnknownOption: false, _args: [], rawArgs: null, _scriptPath: null, _name: 'run', _optionValues: {}, _storeOptionsAsProperties: true, _passCommandToAction: true, _actionResults: [], _actionHandler: [Function: listener], _executableHandler: false, _executableFile: null, _defaultCommandName: null, _exitCallback: null, _aliases: [], _hidden: false, _helpFlags: '-h, --help', _helpDescription: 'display help for command', _helpShortFlag: '-h', _helpLongFlag: '--help', _hasImplicitHelpCommand: 0, _helpCommandName: 'help', _helpCommandnameAndArgs: 'help [command]', _helpCommandDescription: 'display help for command', _usage: '[options]', _description: 'Runs Cypress tests from the CLI without the GUI', _argsDescription: undefined, exit: true, spec: 'lreuvhtvhq', env: '{"currents_temp_file":"/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I","currents_port":19503,"currents_debug_enabled":"true"}', e2e: true, args: [], [Symbol(kCapture)]: false } }`,
`2023-03-10T08:42:57.839Z cypress:cli parsed cli options { e2e: true, env: '{"currents_temp_file":"/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I","currents_port":19503,"currents_debug_enabled":"true"}', spec: 'lreuvhtvhq' }`,
'2023-03-10T08:42:57.839Z cypress:cli verifying Cypress app',
'2023-03-10T08:42:57.840Z cypress:cli checking environment variables',
'2023-03-10T08:42:57.841Z cypress:cli checking if executable exists /Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/MacOS/Cypress',
'2023-03-10T08:42:57.842Z cypress:cli Binary is executable? : true',
'2023-03-10T08:42:57.843Z cypress:cli binaryDir is /Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app',
'2023-03-10T08:42:57.843Z cypress:cli Reading binary package.json from: /Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/package.json',
'2023-03-10T08:42:57.845Z cypress:cli Found binary version 12.5.1 installed in: /Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app',
'2023-03-10T08:42:57.846Z cypress:cli { verified: true }',
'2023-03-10T08:42:57.847Z cypress:cli is Verified ? true',
`2023-03-10T08:42:57.847Z cypress:cli:run processing run options { e2e: true, env: '{"currents_temp_file":"/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I","currents_port":19503,"currents_debug_enabled":"true"}', spec: 'lreuvhtvhq', key: null, reporter: null, reporterOptions: null, project: '/Users/stephane.colson/Code//e2e' }`,
'2023-03-10T08:42:57.847Z cypress:cli:run --key is not set, looking up environment variable CYPRESS_RECORD_KEY',
'2023-03-10T08:42:57.847Z cypress:cli:run run to spawn.start args ["--run-project","/Users/stephane.colson/Code//e2e","--env","{\\"currents_temp_file\\":\\"/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I\\",\\"currents_port\\":19503,\\"currents_debug_enabled\\":\\"true\\"}","--spec","lreuvhtvhq","--testing-type","e2e"]',
'2023-03-10T08:42:57.847Z cypress:cli needs to start own Xvfb? false',
'2023-03-10T08:42:57.847Z cypress:cli spawning, should retry on display problem? false',
`2023-03-10T08:42:57.851Z cypress:cli spawn args [ '--no-sandbox', '--', '--run-project', '/Users/stephane.colson/Code//e2e', '--env', '{"currents_temp_file":"/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I","currents_port":19503,"currents_debug_enabled":"true"}', '--spec', 'lreuvhtvhq', '--testing-type', 'e2e', '--cwd', '/Users/stephane.colson/Code//e2e', '--userNodePath', '/usr/local/bin/node', '--userNodeVersion', '18.2.0' ] { detached: false, stdio: [ 'inherit', 'inherit', 'pipe' ] }`,
'2023-03-10T08:42:57.851Z cypress:cli spawning Cypress with executable: /Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/MacOS/Cypress',
'2023-03-10T08:42:57.854Z cypress:cli piping child STDERR to process STDERR',
'2023-03-10T08:42:58.131Z cypress:snapshot:info Caching 3377, defining 4280 modules! Using cache',
'2023-03-10T08:42:58.135Z cypress:snapshot:debug initializing packherd require',
'2023-03-10T08:42:58.272Z cypress:server:appdata path: /Users/stephane.colson/Library/Application Support/Cypress/cy/production/browsers',
`2023-03-10T08:42:58.278Z cypress:server:cypress starting cypress with argv [ '/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/MacOS/Cypress', '--no-sandbox', '--', '--run-project', '/Users/stephane.colson/Code//e2e', '--env', '{"currents_temp_file":"/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I","currents_port":19503,"currents_debug_enabled":"true"}', '--spec', 'lreuvhtvhq', '--testing-type', 'e2e', '--cwd', '/Users/stephane.colson/Code//e2e', '--userNodePath', '/usr/local/bin/node', '--userNodeVersion', '18.2.0' ]`,
`2023-03-10T08:42:58.278Z cypress:server:args argv array: [ '/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/MacOS/Cypress', '--no-sandbox', '--run-project', '/Users/stephane.colson/Code//e2e', '--env', '{"currents_temp_file":"/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I","currents_port":19503,"currents_debug_enabled":"true"}', '--spec', 'lreuvhtvhq', '--testing-type', 'e2e', '--cwd', '/Users/stephane.colson/Code//e2e', '--userNodePath', '/usr/local/bin/node', '--userNodeVersion', '18.2.0' ]`,
`2023-03-10T08:42:58.279Z cypress:server:args parsed argv options { options: { _: [ '/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/MacOS/Cypress' ], sandbox: false, 'run-project': '/Users/stephane.colson/Code//e2e', runProject: '/Users/stephane.colson/Code//e2e', env: '{"currents_temp_file":"/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I","currents_port":19503,"currents_debug_enabled":"true"}', spec: 'lreuvhtvhq', 'testing-type': 'e2e', testingType: 'e2e', cwd: '/Users/stephane.colson/Code//e2e', userNodePath: '/usr/local/bin/node', userNodeVersion: '18.2.0' } }`,
"2023-03-10T08:42:58.281Z cypress:server:args argv parsed: { _: [ '/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/MacOS/Cypress' ], sandbox: false, runProject: '/Users/stephane.colson/Code//e2e', env: { currents_temp_file: '/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I', currents_port: 19503, currents_debug_enabled: 'true' }, spec: 'lreuvhtvhq', testingType: 'e2e', cwd: '/Users/stephane.colson/Code//e2e', userNodePath: '/usr/local/bin/node', userNodeVersion: '18.2.0', invokedFromCli: true }",
"2023-03-10T08:42:58.282Z cypress:server:util:proxy found proxy environment variables { npm_config_noproxy: '' }",
"2023-03-10T08:42:58.283Z cypress:server:args options { _: [ '/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/MacOS/Cypress' ], sandbox: false, runProject: '/Users/stephane.colson/Code//e2e', spec: [ '/Users/stephane.colson/Code//e2e/lreuvhtvhq' ], testingType: 'e2e', cwd: '/Users/stephane.colson/Code//e2e', userNodePath: '/usr/local/bin/node', userNodeVersion: '18.2.0', invokedFromCli: true, config: { env: { currents_temp_file: '/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I', currents_port: 19503, currents_debug_enabled: 'true' } } }",
"2023-03-10T08:42:58.283Z cypress:server:args argv options: { _: [ '/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/MacOS/Cypress' ], sandbox: false, runProject: '/Users/stephane.colson/Code//e2e', spec: [ '/Users/stephane.colson/Code//e2e/lreuvhtvhq' ], testingType: 'e2e', cwd: '/Users/stephane.colson/Code//e2e', userNodePath: '/usr/local/bin/node', userNodeVersion: '18.2.0', invokedFromCli: true, config: { env: { currents_temp_file: '/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I', currents_port: 19503, currents_debug_enabled: 'true' } }, projectRoot: '/Users/stephane.colson/Code//e2e' }",
`2023-03-10T08:42:58.283Z cypress:server:cypress from argv [ '/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/MacOS/Cypress', '--no-sandbox', '--run-project', '/Users/stephane.colson/Code//e2e', '--env', '{"currents_temp_file":"/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I","currents_port":19503,"currents_debug_enabled":"true"}', '--spec', 'lreuvhtvhq', '--testing-type', 'e2e', '--cwd', '/Users/stephane.colson/Code//e2e', '--userNodePath', '/usr/local/bin/node', '--userNodeVersion', '18.2.0' ] got options { _: [ '/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/MacOS/Cypress' ], sandbox: false, runProject: '/Users/stephane.colson/Code//e2e', spec: [ '/Users/stephane.colson/Code//e2e/lreuvhtvhq' ], testingType: 'e2e', cwd: '/Users/stephane.colson/Code//e2e', userNodePath: '/usr/local/bin/node', userNodeVersion: '18.2.0', invokedFromCli: true, config: { env: { currents_temp_file: '/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I', currents_port: 19503, currents_debug_enabled: 'true' } }, projectRoot: '/Users/stephane.colson/Code//e2e' }`,
'2023-03-10T08:42:58.283Z cypress:server:cypress scaling electron app in headless mode',
'2023-03-10T08:42:58.293Z cypress:server:appdata path: /Users/stephane.colson/Library/Application Support/Cypress/cy/production',
"2023-03-10T08:42:58.320Z cypress:server:cypress starting in mode run with options { _: [ '/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/MacOS/Cypress' ], sandbox: false, runProject: '/Users/stephane.colson/Code//e2e', spec: [ '/Users/stephane.colson/Code//e2e/lreuvhtvhq' ], testingType: 'e2e', cwd: '/Users/stephane.colson/Code//e2e', userNodePath: '/usr/local/bin/node', userNodeVersion: '18.2.0', invokedFromCli: true, config: { env: { currents_temp_file: '/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I', currents_port: 19503, currents_debug_enabled: 'true' } }, projectRoot: '/Users/stephane.colson/Code//e2e' }",
'2023-03-10T08:42:58.320Z cypress:server:cypress running Electron currently',
'2023-03-10T08:42:58.368Z cypress:graphql:nexusDeferIfNotLoadedPlugin Adding nexusDeferIfNotLoadedPlugin for Query.cloudLatestRunUpdateSpecData',
'2023-03-10T08:42:58.368Z cypress:graphql:nexusDeferIfNotLoadedPlugin Adding nexusDeferIfNotLoadedPlugin for Query.cloudProjectBySlug',
'2023-03-10T08:42:58.368Z cypress:graphql:nexusDeferIfNotLoadedPlugin Adding nexusDeferIfNotLoadedPlugin for Query.cloudProjectsBySlugs',
'2023-03-10T08:42:58.368Z cypress:graphql:nexusDeferIfNotLoadedPlugin Adding nexusDeferIfNotLoadedPlugin for Query.cloudSpecByPath',
'2023-03-10T08:42:58.368Z cypress:graphql:nexusDeferIfNotLoadedPlugin Adding nexusDeferIfNotLoadedPlugin for Query.cloudViewer',
'2023-03-10T08:42:58.368Z cypress:graphql:nexusDeferIfNotLoadedPlugin Adding nexusDeferIfNotLoadedPlugin for Query.pollingIntervals',
'2023-03-10T08:42:58.368Z cypress:graphql:nexusDeferIfNotLoadedPlugin Adding nexusDeferIfNotLoadedPlugin for Query.versions',
'2023-03-10T08:42:58.369Z cypress:graphql:nexusDeferIfNotLoadedPlugin Adding nexusDeferIfNotLoadedPlugin for CurrentProject.cloudProject',
'2023-03-10T08:42:58.370Z cypress:graphql:nexusDeferIfNotLoadedPlugin Adding nexusDeferIfNotLoadedPlugin for RemoteFetchableCloudProjectResult.data',
'2023-03-10T08:42:58.370Z cypress:graphql:nexusDeferIfNotLoadedPlugin Adding nexusDeferIfNotLoadedPlugin for RemoteFetchableCloudProjectSpecResult.data',
'2023-03-10T08:42:58.374Z cypress:server:browsers:utils getBrowsers',
"2023-03-10T08:42:58.374Z cypress:launcher:detect detecting if the following browsers are present [ { name: 'chrome', family: 'chromium', channel: 'stable', displayName: 'Chrome', versionRegex: /Google Chrome (\\S+)/m, binary: [ 'google-chrome', 'chrome', 'google-chrome-stable' ], minSupportedVersion: 64 }, { name: 'chromium', family: 'chromium', channel: 'stable', displayName: 'Chromium', versionRegex: /Chromium (\\S+)/m, binary: [ 'chromium-browser', 'chromium' ], minSupportedVersion: 64 }, { name: 'chrome', family: 'chromium', channel: 'beta', displayName: 'Chrome Beta', versionRegex: /Google Chrome (\\S+) beta/m, binary: 'google-chrome-beta', minSupportedVersion: 64 }, { name: 'chrome', family: 'chromium', channel: 'canary', displayName: 'Canary', versionRegex: /Google Chrome Canary (\\S+)/m, binary: 'google-chrome-canary', minSupportedVersion: 64 }, { name: 'firefox', family: 'firefox', channel: 'stable', displayName: 'Firefox', versionRegex: /^Mozilla Firefox ([^\\sab]+)$/m, binary: 'firefox', minSupportedVersion: 86, validator: [Function: validator] }, { name: 'firefox', family: 'firefox', channel: 'dev', displayName: 'Firefox Developer Edition', versionRegex: /^Mozilla Firefox (\\S+b\\S*)$/m, binary: [ 'firefox-developer-edition', 'firefox' ], minSupportedVersion: 86 }, { name: 'firefox', family: 'firefox', channel: 'nightly', displayName: 'Firefox Nightly', versionRegex: /^Mozilla Firefox (\\S+a\\S*)$/m, binary: [ 'firefox-nightly', 'firefox-trunk' ], minSupportedVersion: 86 }, { name: 'edge', family: 'chromium', channel: 'stable', displayName: 'Edge', versionRegex: /Microsoft Edge (\\S+)/im, binary: [ 'edge', 'microsoft-edge' ], minSupportedVersion: 79 }, { name: 'edge', family: 'chromium', channel: 'canary', displayName: 'Edge Canary', versionRegex: /Microsoft Edge.+?(\\S*(?= canary)|(?<=canary )\\S*)/im, binary: [ 'edge-canary', 'microsoft-edge-canary' ], minSupportedVersion: 79 }, { name: 'edge', family: 'chromium', channel: 'beta', displayName: 'Edge Beta', versionRegex: /Microsoft Edge.+?(\\S*(?= beta)|(?<=beta )\\S*)/im, binary: [ 'edge-beta', 'microsoft-edge-beta' ], minSupportedVersion: 79 }, { name: 'edge', family: 'chromium', channel: 'dev', displayName: 'Edge Dev', versionRegex: /Microsoft Edge.+?(\\S*(?= dev)|(?<=dev )\\S*)/im, binary: [ 'edge-dev', 'microsoft-edge-dev' ], minSupportedVersion: 79 } ]",
"2023-03-10T08:42:58.376Z cypress:server:browsers:utils WebKit is enabled, but there was an error constructing the WebKit browser: { err: Error: Cannot find module 'playwright-webkit' Require stack: - /Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/packages/server/lib/browsers/utils.ts at Module._resolveFilename (node:internal/modules/cjs/loader:940:15) at n._resolveFilename (node:electron/js2c/browser_init:249:1105) at resolve (node:internal/modules/cjs/helpers:108:19) at Function.resolve (evalmachine.<anonymous>:1:733924) at N (<embedded>:4567:307214) at Object.I [as getBrowsers] (<embedded>:4567:308049) at b.machineBrowsers (<embedded>:4226:46866) at T._setCurrentProject (<embedded>:4337:78225) at new T (<embedded>:4337:71533) at new I (<embedded>:4337:122599) at N (<embedded>:4639:437733) at s.exports (<embedded>:4639:529356) at <embedded>:4646:2607 at tryCatcher (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/util.js:16:23) at Function.<anonymous> (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/method.js:39:29) at Object.runElectron (<embedded>:4646:2377) at Object.startInMode (<embedded>:4646:4857) at <embedded>:4646:3945 at tryCatcher (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/util.js:16:23) at Promise._settlePromiseFromHandler (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:512:31) at Promise._settlePromise (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:569:18) at Promise._settlePromise0 (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:614:10) at Promise._settlePromises (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:694:18) at Promise._fulfill (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:638:18) at Promise._settlePromise (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:582:21) at Promise._settlePromise0 (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:614:10) at Promise._settlePromises (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:694:18) at Promise._fulfill (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:638:18) at Promise._settlePromise (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:582:21) at Promise._settlePromise0 (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:614:10) at Promise._settlePromises (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:694:18) at Promise._fulfill (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:638:18) at PromiseArray._resolve (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise_array.js:126:19) at PromiseArray._promiseFulfilled (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise_array.js:144:14) at Promise._settlePromise (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:574:26) at Promise._settlePromise0 (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:614:10) at Promise._settlePromises (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:694:18) at Promise._fulfill (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:638:18) at /Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/nodeback.js:42:21 at <embedded>:1955:88964 { code: 'MODULE_NOT_FOUND', requireStack: [ '/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/packages/server/lib/browsers/utils.ts' ] } }",
"2023-03-10T08:42:58.376Z cypress:data-context:sources:GitDataSource config: { isRunMode: true, projectRoot: '/Users/stephane.colson/Code//e2e', onError: [Function (anonymous)], onBranchChange: [Function: onBranchChange], onGitInfoChange: [Function: onGitInfoChange], onGitLogChange: [AsyncFunction: onGitLogChange] }",
'2023-03-10T08:42:58.383Z cypress:scaffold-config:detect Checking for default Cypress config file',
'2023-03-10T08:42:58.383Z cypress:scaffold-config:detect Detected cypress.config.ts - using TS',
'2023-03-10T08:42:58.395Z cypress:server:video using ffmpeg from /Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/@ffmpeg-installer/darwin-arm64/ffmpeg',
'2023-03-10T08:42:58.396Z cypress:server:performance-benchmark elapsed time at run mode ready: 268.333ms',
"2023-03-10T08:42:58.406Z cypress:lifecycle:ProjectConfigIpc fork child process { CHILD_PROCESS_FILE_PATH: '/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/packages/server/lib/plugins/child/require_async_child.js', configProcessArgs: [ '--projectRoot', '/Users/stephane.colson/Code//e2e', '--file', '/Users/stephane.colson/Code//e2e/cypress.config.ts' ], childOptions: { stdio: 'pipe', cwd: '/Users/stephane.colson/Code//e2e', execPath: '/usr/local/bin/node' } }",
'2023-03-10T08:42:58.407Z cypress:lifecycle:ProjectConfigIpc found typescript in /Users/stephane.colson/Code//e2e',
'2023-03-10T08:42:58.407Z cypress:lifecycle:ProjectConfigIpc using cjs with --require /Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/packages/server/lib/plugins/child/register_ts_node.js',
'2023-03-10T08:42:58.410Z cypress:lifecycle:ProjectConfigIpc trigger the load of the file',
'2023-03-10T08:42:58.707Z cypress:server:util:process_profiler current & mean memory and CPU usage by process group:',
'โโโโโโโโโโโฌโโโโโโโโโโโโฌโโโโโโโโโโโโโโโฌโโโโโโโโโโฌโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโ',
'โ (index) โ group โ processCount โ pids โ cpuPercent โ meanCpuPercent โ memRssMb โ meanMemRssMb โ maxMemRssMb โ',
'โโโโโโโโโโโผโโโโโโโโโโโโผโโโโโโโโโโโโโโโผโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโค',
"โ 0 โ 'cypress' โ 1 โ '20623' โ 65.7 โ 65.7 โ 306 โ 306 โ 306 โ",
"โ 1 โ 'other' โ 1 โ '20626' โ 0 โ 0 โ 1.94 โ 1.94 โ 1.94 โ",
"โ 2 โ 'TOTAL' โ 2 โ '-' โ 65.7 โ 65.7 โ 307.94 โ 307.94 โ 307.94 โ",
'โโโโโโโโโโโดโโโโโโโโโโโโดโโโโโโโโโโโโโโโดโโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโ',
"2023-03-10T08:42:58.708Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /Chromium (\\S+)/m }",
"2023-03-10T08:42:58.708Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /Chromium (\\S+)/m }",
"2023-03-10T08:42:58.721Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /Google Chrome (\\S+) beta/m }",
"2023-03-10T08:42:58.735Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /Google Chrome Canary (\\S+)/m }",
"2023-03-10T08:42:58.739Z cypress:server:register-ts-node executing register_ts_node with args { _: [ '/usr/local/bin/node', '/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/packages/server/lib/plugins/child/require_async_child.js' ], projectRoot: '/Users/stephane.colson/Code//e2e', file: '/Users/stephane.colson/Code//e2e/cypress.config.ts' }",
'2023-03-10T08:42:58.741Z cypress:server:register-ts-node registering ts-node for projectRoot: /Users/stephane.colson/Code//e2e and file: /Users/stephane.colson/Code//e2e/cypress.config.ts',
'2023-03-10T08:42:58.741Z cypress:server:ts-node projectRoot path: /Users/stephane.colson/Code//e2e',
'2023-03-10T08:42:58.741Z cypress:server:ts-node registeredFile: /Users/stephane.colson/Code//e2e/cypress.config.ts',
"2023-03-10T08:42:58.741Z cypress:server:plugins resolving typescript with projectRoot '/Users/stephane.colson/Code//e2e'",
'2023-03-10T08:42:58.742Z cypress:server:plugins resolved typescript /Users/stephane.colson/Code//e2e/node_modules/typescript/lib/typescript.js',
'2023-03-10T08:42:58.742Z cypress:server:ts-node typescript path: /Users/stephane.colson/Code//e2e/node_modules/typescript/lib/typescript.js',
"2023-03-10T08:42:58.757Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /^Mozilla Firefox (\\S+b\\S*)$/m }",
"2023-03-10T08:42:58.757Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /^Mozilla Firefox (\\S+b\\S*)$/m }",
"2023-03-10T08:42:58.768Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /^Mozilla Firefox (\\S+a\\S*)$/m }",
"2023-03-10T08:42:58.769Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /^Mozilla Firefox (\\S+a\\S*)$/m }",
"2023-03-10T08:42:58.778Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /Microsoft Edge (\\S+)/im }",
"2023-03-10T08:42:58.779Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /Microsoft Edge (\\S+)/im }",
"2023-03-10T08:42:58.789Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /Microsoft Edge.+?(\\S*(?= canary)|(?<=canary )\\S*)/im }",
"2023-03-10T08:42:58.790Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /Microsoft Edge.+?(\\S*(?= canary)|(?<=canary )\\S*)/im }",
"2023-03-10T08:42:58.802Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /Microsoft Edge.+?(\\S*(?= beta)|(?<=beta )\\S*)/im }",
"2023-03-10T08:42:58.802Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /Microsoft Edge.+?(\\S*(?= beta)|(?<=beta )\\S*)/im }",
"2023-03-10T08:42:58.812Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /Microsoft Edge.+?(\\S*(?= dev)|(?<=dev )\\S*)/im }",
"2023-03-10T08:42:58.813Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /Microsoft Edge.+?(\\S*(?= dev)|(?<=dev )\\S*)/im }",
"2023-03-10T08:42:58.813Z cypress:server:browsers:utils found browsers { browsers: [ { name: 'chrome', family: 'chromium', channel: 'stable', displayName: 'Chrome', version: '111.0.5563.64', path: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome', minSupportedVersion: 64, majorVersion: '111' }, { name: 'firefox', family: 'firefox', channel: 'stable', displayName: 'Firefox', version: '110.0.1', path: '/Applications/Firefox.app/Contents/MacOS/firefox', minSupportedVersion: 86, majorVersion: '110' } ] }",
"2023-03-10T08:42:58.853Z cypress:server:ts-node registering project TS with options { compiler: '/Users/stephane.colson/Code//e2e/node_modules/typescript/lib/typescript.js', compilerOptions: { module: 'commonjs', preserveValueImports: false }, dir: '/Users/stephane.colson/Code//e2e', transpileOnly: true }",
"2023-03-10T08:42:58.870Z cypress:server:ts-node typescript doesn't exist. ts-node setup failed.",
'2023-03-10T08:42:58.870Z cypress:server:ts-node error message: โจฏ Unable to compile TypeScript:',
"error TS6046: Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'es2022', 'esnext', 'dom', 'dom.iterable', 'webworker', 'webworker.importscripts', 'webworker.iterable', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object', 'es2017.sharedmemory', 'es2017.string', 'es2017.intl', 'es2017.typedarrays', 'es2018.asyncgenerator', 'es2018.asynciterable', 'es2018.intl', 'es2018.promise', 'es2018.regexp', 'es2019.array', 'es2019.object', 'es2019.string', 'es2019.symbol', 'es2019.intl', 'es2020.bigint', 'es2020.date', 'es2020.promise', 'es2020.sharedmemory', 'es2020.string', 'es2020.symbol.wellknown', 'es2020.intl', 'es2020.number', 'es2021.promise', 'es2021.string', 'es2021.weakref', 'es2021.intl', 'es2022.array', 'es2022.error', 'es2022.intl', 'es2022.object', 'es2022.sharedmemory', 'es2022.string', 'esnext.array', 'esnext.symbol', 'esnext.asynciterable', 'esnext.intl', 'esnext.bigint', 'esnext.string', 'esnext.promise', 'esnext.weakref'.",
'',
'2023-03-10T08:42:58.904Z cypress:lifecycle:child:run_require_async_child:20640 configFile: /Users/stephane.colson/Code//e2e/cypress.config.ts',
'2023-03-10T08:42:58.904Z cypress:lifecycle:child:run_require_async_child:20640 projectRoot: /Users/stephane.colson/Code//e2e',
'2023-03-10T08:42:58.905Z cypress:lifecycle:child:run_require_async_child:20640 try loading /Users/stephane.colson/Code//e2e/cypress.config.ts',
... 119 more items
]
}
====================================================================================================
ERROR Error: Unable to resolve cypress configuration
at bootCypress (/Users/stephane.colson/Code//e2e/node_modules/lib/bootstrap.ts:81:11)
at getConfig (/Users/stephane.colson/Code//e2e/node_modules/lib/config.ts:58:19)
at run (/Users/stephane.colson/Code//e2e/node_modules/index.ts:45:18)
Add debug messages
Add user-facing messages and status updates
Use a popular library for colorful terminal output
Use the relevant dashboard link
Create a simple structure for component tests, put the tests in a different directory and make sure it's working as expected.
Make the configuration slightly different between e2e and component tests.
Capture the reproduction step in a script.
Make sure everything is working as expected.
Measure the performance penalty due to reloading cypress.
System:
OS: Windows 10 10.0.19044
CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Memory: 8.29 GB / 31.74 GB
Binaries:
Node: 18.13.0 - C:\Program Files\nodejs\node.EXE
Yarn: 1.22.19 - C:\Program Files (x86)\Yarn\bin\yarn.CMD
npm: 8.19.3 - C:\Program Files\nodejs\npm.CMD
Browsers:
Edge: Spartan (44.19041.1266.0), Chromium (111.0.1661.41)
Internet Explorer: 11.0.19041.1566
npmPackages:
@cypress/angular: 0.0.0-development
@cypress/mount-utils: 0.0.0-development
@cypress/react: 0.0.0-development
@cypress/react18: 0.0.0-development
@cypress/svelte: 0.0.0-development
@cypress/vue: 0.0.0-development
@cypress/vue2: 0.0.0-development
cypress: ^12.7.0 => 12.7.0
cypress-cloud: 1.5.0 => 1.5.0
npmGlobalPackages:
corepack: 0.15.2
npm: 8.19.3
rimraf: 4.1.2
Since upgrading from 1.4.4 to 1.4.5-beta0 (and 1.5.0) the plugin itself can no longer communicate with sorry-cypress (error 400).
I tested it twice, with two instance of sorry-cypress (one with version 2.5.3 and one with 2.1.3). They both responded with error "400". I guess it's purely a client side error but it's suboptimal that the Module API version just returns an undefined object rather than some kind of error message details like with the command "npx cypress-cloud".
Communcation works as in 1.4.4
Error from "./run-tests-ci.sh" command (this worked in 1.4.4):
ERROR Error: Request failed with status code 400
at C:\views\_\cypress-cloud-module-api\node_modules\lib\httpClient\httpClient.ts:92:13
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at createRun (C:\views\_\cypress-cloud-module-api\node_modules\lib\api\api.ts:17:20)
at run (C:\views\_\cypress-cloud-module-api\node_modules\index.ts:70:15)
Error from "node run-tests-ci.js" command:
...
const result = await run({
ciBuildId: getCiBuildId(),
}).catch((err) => {
console.error(`error occurred`);
console.error(JSON.stringify(err, null, 2));
exitCode = 999;
});
...
produced output:
error occurred
{}
Result object from cypress-cloud run command:
undefined
Full logs and used scripts are here:
https://github.com/mirobo/cypress-cloud-module-api/blob/main/run-tests-ci.sh
https://github.com/mirobo/cypress-cloud-module-api/blob/main/log-sh.txt
https://github.com/mirobo/cypress-cloud-module-api/blob/main/run-tests-ci.js
https://github.com/mirobo/cypress-cloud-module-api/blob/main/log-js.txt
While adding more parts to cypress-runner
package I have noticed that we don't have any configurable logger module like for example cypress has debug
method:
https://github.com/cypress-io/cypress/blob/afb66abc7023ce71e2893cb6de67d24706ff7a1f/packages/server/lib/modes/record.js#L6
Would be nice to have it so we can use it from the beginning
Discovered a bug when circleCI couldn't report git information properly
Test for:
A user reported sluggish videos + the actual browser content is not loaded. Not sure if it is related to cypress-cloud or cypress 12.1.0:
Run a job on CI with cloud / cy2 and compare videos.
Make sure we provide only the necessary flags to cypress when running config loader and actual execution
Test configuration options like -c key=val, etc
cypress: ^12.7.0 => 12.7.0
cypress-cloud: ^1.4.4 => 1.4.4
npx envinfo --system --binaries --browsers --npmPackages --duplicates --npmGlobalPackages
System:
OS: Windows 10 10.0.19044
CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Memory: 8.35 GB / 31.74 GB
Binaries:
Node: 18.13.0 - C:\Program Files\nodejs\node.EXE
Yarn: 1.22.19 - C:\Program Files (x86)\Yarn\bin\yarn.CMD
npm: 8.19.3 - C:\Program Files\nodejs\npm.CMD
Browsers:
Edge: Spartan (44.19041.1266.0), Chromium (110.0.1587.69)
Internet Explorer: 11.0.19041.1566
npmPackages:
@cypress/angular: 0.0.0-development
@cypress/mount-utils: 0.0.0-development
@cypress/react: 0.0.0-development
@cypress/react18: 0.0.0-development
@cypress/svelte: 0.0.0-development
@cypress/vue: 0.0.0-development
@cypress/vue2: 0.0.0-development
cypress: ^12.7.0 => 12.7.0
cypress-cloud: ^1.4.4 => 1.4.4
npmGlobalPackages:
corepack: 0.15.2
npm: 8.19.3
rimraf: 4.1.2
I'm not able to use the cypress-cloud module API within a JS file.
Starting cypress-cloud via "npx cypress-cloud" works fine. But it is still a blocker since I cannot pass Cypress config options to "npx cypress-cloud".
I dynamically configure some Cypress env variables in a JavaScript file and because of it I need (it is much more convenient) to start cypress-cloud via the Module API
Module API works everywhere :)
Simple demo project: https://github.com/mirobo/cypress-cloud-module-api
Run commands:
C:\views\_\cypress-cloud-module-api>node run-tests-ci.js
node:internal/modules/cjs/loader:544
throw e;
^
Error: Cannot find module 'C:\views\_\cypress-cloud-module-api\node_modules\cypress-cloud\'
at createEsmNotFoundErr (node:internal/modules/cjs/loader:1060:15)
at finalizeEsmResolution (node:internal/modules/cjs/loader:1053:15)
at resolveExports (node:internal/modules/cjs/loader:538:14)
at Module._findPath (node:internal/modules/cjs/loader:607:31)
at Module._resolveFilename (node:internal/modules/cjs/loader:1025:27)
at Module._load (node:internal/modules/cjs/loader:885:27)
at Module.require (node:internal/modules/cjs/loader:1105:19)
at require (node:internal/modules/cjs/helpers:103:18)
at Object.<anonymous> (C:\views\_\cypress-cloud-module-api\run-tests-ci.js:1:17)
at Module._compile (node:internal/modules/cjs/loader:1218:14) {
code: 'MODULE_NOT_FOUND',
path: 'C:\\views\\_\\cypress-cloud-module-api\\node_modules\\cypress-cloud\\package.json'
}
Node.js v18.13.0
Add strict types for Currents configuration options
Originally posted by @vitaliimelnychuk in #39 (comment)
Allow invoking run
programmatically
e.g.
import { run } from '@currents/cypress-runner`
const results await run({
projectId,
key,
specPattern
});
currents/director
package can return responses with various error messages, like for example GenericResponseError
We need to enumerate all those warnings and messages and handle them in the new runner. Please create a list of errors emitted and the associated request and what type of error is displayed. You can also refer to the original cypress implementation
Don't worry about the formating yet - we will polish it later.
# Put output below this line
System:
OS: Linux 5.10 Ubuntu 22.04.2 LTS 22.04.2 LTS (Jammy Jellyfish)
CPU: (16) x64 AMD Ryzen 7 5800U with Radeon Graphics
Memory: 2.92 GB / 6.71 GB
Container: Yes
Shell: 5.1.16 - /bin/bash
Binaries:
Node: 14.17.3 - ~/.nvm/versions/node/v14.17.3/bin/node
npm: 6.14.13 - ~/.nvm/versions/node/v14.17.3/bin/npm
Browsers:
Chrome: 111.0.5563.64
npmPackages:
@currents/cli: ^4.0.3 => 4.0.3
@cypress/angular: 0.0.0-development
@cypress/mount-utils: 0.0.0-development
@cypress/react: 0.0.0-development
@cypress/react18: 0.0.0-development
@cypress/svelte: 0.0.0-development
@cypress/vue: 0.0.0-development
@cypress/vue2: 0.0.0-development
@faker-js/faker: ^7.6.0 => 7.6.0
cypress: ^12.7.0 => 12.7.0
cypress-cloud: ^1.4.2 => 1.4.2
cypress-recurse: ^1.27.0 => 1.27.0
fs: ^0.0.1-security => 0.0.1-security
moment: ^2.29.4 => 2.29.4
numeral: ^2.0.6 => 2.0.6
q: ^1.5.1 => 1.5.1
shelljs: ^0.8.5 => 0.8.5
swagger-client: ^3.18.5 => 3.18.5
xvfb: ^0.4.0 => 0.4.0
npmGlobalPackages:
npm: 6.14.13
When running the command npx cypress-cloud --parallel --record --key <your_key> --ci-build-id hello-cypress-cloud
the CLI always return (intermediate value).default is not a function
and doesn't run the test
Should be able to run the test using cypress-cloud
*projectRoot/currents.config.js file
module.exports = {
projectId: "Sun9p6",
recordKey: "*******",
cloudServiceUrl: "https://cy.currents.dev",
};
=========================================
*projectRoot/cypress.config.js file
const { defineConfig } = require("cypress");
const { cloudPlugin } = require("cypress-cloud/plugin");
module.exports = defineConfig({
e2e: {
setupNodeEvents(on, config) {
return cloudPlugin(on, config);
},
},
});
============================================
Implement a unified http client, which can be used for sending API calls. Every request needs to be retried several times with a backoff.
Here's an example implementation from cypress:
retryWithBackoff
Each outgoing request should attach a header x-cypress-request-attempt
with the attempt counter
Our problem is a weird one around the record key... I didn't think we needed to pass the --key in the start up command when we were using currents/cli. Our record key is stored as a variable inside the pipeline runs in Azure. Now getting this error:
It currently has the projectId: XXXXXX
You also provided your Record Key, but you did not pass the --record flag.
This run will not be recorded.
If you meant to have this run recorded please additionally pass this flag:
$ cypress run --record
If you don't want to record these runs, you can silence this warning:
$ cypress run --record false
https://on.cypress.io/recording-project-runs
Now I have updated our startup command to this:
npx cypress-cloud run --browser chrome --config-file cypress/config/${{ parameters.environmentName }}.config.js --record --key
where I am passing the key after --record but I am still seeing the error above
Even though we are passing a record key from an configuration on our pipeline, the CLI claims we are not. We tried it with and without the record key inside currents.config.js and both gave us the error above
I would expect the startup command I posted to work without telling us that the key is missing. Oddly, it still does seem to record to Currents anyway!
npx cypress-cloud run --browser chrome --config-file cypress/config/${{ parameters.environmentName }}.config.js --record --key
// Put your logs below this line
It currently has the projectId: XXXXXX
You also provided your Record Key, but you did not pass the --record flag.
This run will not be recorded.
If you meant to have this run recorded please additionally pass this flag:
$ cypress run --record
If you don't want to record these runs, you can silence this warning:
$ cypress run --record false
https://on.cypress.io/recording-project-runs
# Put output below this line
On sorry-cypress 2.5.3 I saw that when I run tests with cypress-cloud 1.5.0 and 1.5.3, the screenshots and videos are uploaded in a way that sorry-cypress delivers them as application/json rather than binary/octet-stream. Is this the same issue?
Wrong (Cypress 12.6.0 + cypress-cloud 1.5.3):
Correct (Test was run with cy2 and older version of Cypress):
I think it worked (need to check) when I ran tests with cypress-cloud 1.4.4 via npx cypress-cloud..
Artifacts should have the correct mime type:
video/mp4
for videosimage/png
for screenshotsn/a
// Put your logs below this line
Please use https://mswjs.io/ or just create a dummy server and use it for running the e2e:
Mock API responses and endpoint
Execute a node script at 'nextjs/example' - it should run the tool with a standard set of flags, e.g.:
CURRENTS_API_BASE_URL=http://localhost:1234 yarn cypress-runner --parallel --record --ci-build-id
date +%s``
assert the script status
run just one spec (use cypress config or script flags to limit)
# Put output below this line
Reported via in-app chat
Reported via in-app chat - customer has videoUploadOnPasses: true
and no videos are getting uploaded
Videos should appear
n/a
// Put your logs below this line
Example output from cypress:
โ Cypress: 12.0.2 โ
โ Browser: Electron 106 (headless) โ
โ Node Version: v16.14.2 (/usr/local/bin/node) โ
โ Specs: 8 found (all.spec.js, all2.spec.js, orchestration_100.spec.js, orchestration_1 โ
โ 01.spec.js, orchestration_102.spec.js, orchestration_103.spec.js, orchestratio โ
โ n_104.spec.js, skipped.spec.js) โ
โ Searched: cypress/integration/*.spec.js โ
โ Params: Tag: false, Group: false, Parallel: true โ
โ Run URL: https://app.currents.dev/run/5d7e48a321d2e381386dd9f8ad764681 โ
See https://sorry-cypress.slack.com/archives/C04F7LJ1E3H/p1671443824388969
The plugin is widely used, and we need to restore its functionality. I don't have many details except for the user's report.
# Put output below this line
System:
OS: Linux 5.4 Debian GNU/Linux 10 (buster) 10 (buster)
CPU: (10) x64 AMD EPYC 7282 16-Core Processor
Memory: 11.78 GB / 58.88 GB
Container: Yes
Shell: 5.0.3 - /bin/bash
Binaries:
Node: 14.16.0 - /usr/local/bin/node
Yarn: 1.22.10 - /usr/local/bin/yarn
npm: 6.14.11 - /usr/local/bin/npm
npmPackages:
@currents/cli: ^4.0.3 => 4.0.3
@cypress/angular: 0.0.0-development
@cypress/mount-utils: 0.0.0-development
@cypress/react: 0.0.0-development
@cypress/react18: 0.0.0-development
@cypress/svelte: 0.0.0-development
@cypress/vue: 0.0.0-development
@cypress/vue2: 0.0.0-development
@cypress/webpack-batteries-included-preprocessor: ^2.4.0 => 2.4.0
@cypress/webpack-preprocessor: ^5.17.0 => 5.17.0
@faker-js/faker: ^7.6.0 => 7.6.0
cypress: ^12.7.0 => 12.7.0
cypress-cloud: ^1.4.4 => 1.4.4
cypress-recurse: ^1.27.0 => 1.27.0
moment: ^2.29.4 => 2.29.4
numeral: ^2.0.6 => 2.0.6
swagger-client: ^3.18.5 => 3.18.5
uuid: ^9.0.0 => 9.0.0 (8.3.2)
xvfb: ^0.4.0 => 0.4.0
npmGlobalPackages:
npm: 6.14.11
yarn: 1.22.10
When the Jenkins Job is already finished and is a success, the run associated with that build in the Currents keeps on running. This only happens whenever we encounter the warning message WARNING Cannot find run result for spec ../spec/Path
and WARNING Cannot determine run result for spec ../spec/Path
every after Reporting results and artifacts in background...
in the console log
Should be able to finish the run and perhaps give more information as to why it cannot find and determine the result for a particular spec that was run.
Jenkins File Snippet
stage('CBS UI Test') {
environment {
CURRENTS_RECORD_KEY = credentials('currents-record-key')
CURRENTS_PROJECT_ID = credentials('currents-master-projectid')
CURRENTS_API_URL = credentials('currents-cloud-url')
CYPRESS_trashAssetsBeforeRuns = 'false'
}
parallel {
stage('Tester A') {
steps {
echo "Running build ${env.BUILD_ID} on Tester A"
sh "NO_COLOR=1 npx cypress-cloud run --parallel --record --key ${env.CURRENTS_RECORD_KEY} --ci-build-id ${env.GIT_BRANCH}-${env.BUILD_ID}"
}
}
stage('Tester B') {
steps {
echo "Running build ${env.BUILD_ID} on Tester B"
sh "NO_COLOR=1 npx cypress-cloud run --parallel --record --key ${env.CURRENTS_RECORD_KEY} --ci-build-id ${env.GIT_BRANCH}-${env.BUILD_ID}"
}
}
stage('Tester C') {
steps {
echo "Running build ${env.BUILD_ID} on Tester C"
sh "NO_COLOR=1 npx cypress-cloud run --parallel --record --key ${env.CURRENTS_RECORD_KEY} --ci-build-id ${env.GIT_BRANCH}-${env.BUILD_ID}"
}
}
}
}
This is an intermittent issue and produces a lot of logs if we do it in Jenkins CI and doesn't happen all the time but here's a screen recording of it
Also, make sure to mark the run as failed in CI when a crash is detected
# Put output below this line
System:
OS: Windows 10 10.0.19045
CPU: (8) x64 Intel(R) Xeon(R) CPU E5530 @ 2.40GHz
Memory: 4.91 GB / 9.99 GB
Binaries:
Node: 18.12.1 - C:\Program Files\nodejs\node.EXE
npm: 8.19.2 - C:\Program Files\nodejs\npm.CMD
Browsers:
Edge: Spartan (44.19041.1266.0), Chromium (111.0.1661.41)
Internet Explorer: 11.0.19041.1566
npmPackages:
@cypress/angular: 0.0.0-development
@cypress/mount-utils: 0.0.0-development
@cypress/react: 0.0.0-development
@cypress/react18: 0.0.0-development
@cypress/svelte: 0.0.0-development
@cypress/vue: 0.0.0-development
@cypress/vue2: 0.0.0-development
cypress: ^12.6.0 => 12.6.0
cypress-cloud: ^1.4.4 => 1.4.4
cypress-terminal-report: ^5.0.0 => 5.0.0
ts-node: ^10.9.1 => 10.9.1
I run test cypress-cloud with connected to sorry-cypress server and the test didn't run. The sorry-cypress server is configured correctly and cy2 works correctly. attempts to configure with the help of the cypress-cloud package have not yet worked out for me
Run clear example my test
default docker-compose sorry-cypress in linux server
use yml with cahnged passwords
https://github.com/sorry-cypress/sorry-cypress/blob/master/docker-compose.minio.yml
// Put your logs below this line
C:\work\nstarkov\first>npx cypress-cloud --parallel --record --key somekey --ci-build-id hello-cypress-cloud
cypress:cli exporting Cypress module interface +0ms
currents:cli parsed CLI flags { component: false, e2e: true, parallel: true, record: true, key: 'somekey', ciBuildId: 'hello-cypress-cloud' } +0ms
currents:config loading currents config file from 'C:\work\nstarkov\first\currents.config.js' +0ms
currents:capture capturing stdout +0ms
currents:cli parsed run params: { parallel: true, record: true, key: 'somekey', ciBuildId: 'hello-cypress-cloud', config: undefined, env: undefined, reporterOptions: undefined, testingType: 'e2e', projectId: 'dev2cloud', batchSize: 3 } +93ms
currents:index run api params { parallel: true, record: true, key: 'somekey', ciBuildId: 'hello-cypress-cloud', config: undefined, env: undefined, reporterOptions: undefined, testingType: 'e2e', projectId: 'dev2cloud', batchSize: 3 } +0ms
currents:config resolving cypress config +148ms
currents:boot booting cypress... +0ms
currents:boot booting cypress with args: [ 'run', '--spec', 'ppdzmvxbjo', '--env', '{"currents_temp_file":"C:\\\\Users\\\\jenkins\\\\AppData\\\\Local\\\\Temp\\\\tmp-7988-d4FFwrL3yWpb","currents_port":58449,"currents_debug_enabled":"true"}', '--e2e' ] +60ms
currents:boot cypress executable location: C:\work\nstarkov\first\node_modules\cypress\bin\cypress +9ms
currents:boot read config temp file failed: Error: Is cypress-cloud/plugin installed? at bootCypress (C:\work\nstarkov\first\node_modules\lib\bootstrap.ts:70:13) at getConfig (C:\work\nstarkov\first\node_modules\lib\config.ts:65:19) at run (C:\work\nstarkov\first\node_modules\index.ts:45:18) +9ms
====================================================================================================
ERROR TypeError: Cannot read properties of null (reading 'toString')
at bootCypress (C:\work\nstarkov\first\node_modules\lib\bootstrap.ts:76:46)
at getConfig (C:\work\nstarkov\first\node_modules\lib\config.ts:65:19)
at run (C:\work\nstarkov\first\node_modules\index.ts:45:18)
C:\work\nstarkov\first>
# Put output below this line
System:
OS: macOS 13.2.1
CPU: (12) x64 Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz
Memory: 23.83 MB / 16.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 16.13.1 - ~/.nvm/versions/node/v16.13.1/bin/node
Yarn: 1.22.17 - ~/.nvm/versions/node/v16.13.1/bin/yarn
npm: 8.1.2 - ~/.nvm/versions/node/v16.13.1/bin/npm
Browsers:
Chrome: 111.0.5563.64
Safari: 16.3
npmPackages:
@cypress/angular: 0.0.0-development
@cypress/mount-utils: 0.0.0-development
@cypress/react: 0.0.0-development
@cypress/react18: 0.0.0-development
@cypress/svelte: 0.0.0-development
@cypress/vue: 0.0.0-development
@cypress/vue2: 0.0.0-development
cypress: ^12.8.1 => 12.8.1
cypress-cloud: ^1.5.1 => 1.5.1
npmGlobalPackages:
corepack: 0.10.0
npm: 8.1.2
yarn: 1.22.17
Unable to load currents.config.js message displayed.
$ DEBUG=cypress:* node index.js
WARNING failed to load config file: /Users/xxxx/cypress-cloud-module-api/currents.config.js
file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/config/params.ts:81
throw new ValidationError(projectIdError);
^
Error: Cannot resolve projectId. Please use one of the following:
- set CURRENTS_PROJECT_ID environment variable
- set "projectId" in "currents.config.js" file
- provide it as a "projectId" property for "run" API method
at validateParams (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/config/params.ts:81:11)
at run (file:///Users/xxxx/cypress-cloud-module-api/node_modules/lib/run.ts:20:27)
at run2 (file:///Users/xxxx/cypress-cloud-module-api/node_modules/index.ts:13:10)
at file:///Users/xxxxx/cypress-cloud-module-api/index.js:3:23
at ModuleJob.run (node:internal/modules/esm/module_job:185:25)
at async Promise.all (index 0)
at ESMLoader.import (node:internal/modules/esm/loader:281:24)
at loadESM (node:internal/process/esm_loader:88:5)
at handleMainPromise (node:internal/modules/run_main:65:12)
After adding projectId and recordKey to the run parameters,
$ DEBUG=cypress:* node index.js
WARNING failed to load config file: /Users/xxxxx/cypress-cloud-module-api/currents.config.js
file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/bootstrap/bootstrap.ts:20
const cypressBin = await getBinPath(require.resolve("cypress"));
^
TypeError: __require.resolve is not a function
at bootCypress (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/bootstrap/bootstrap.ts:20:47)
at getMergedConfig (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/config/config.ts:66:19)
at run (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/run.ts:34:18)
at file:///Users/xxxxx/cypress-cloud-module-api/index.js:3:17
Should be able to start Cypress with either currents.config.js or using parameters in run function
clone https://github.com/lpanger/cypress-cloud-module-api
Then run:
yarn
node index.js
// Put your logs below this line
currents:run run params { reporter: 'junit', browser: 'chrome', config: { baseUrl: 'http://localhost:8080', video: true } } +0ms
currents:config loading currents config file from '/Users/xxxxx/cypress-cloud-module-api/currents.config.js' +0ms
WARNING failed to load config file: /Users/xxxxx/cypress-cloud-module-api/currents.config.js
currents:config failure details: Error: Dynamic require of "/Users/xxxxx/cypress-cloud-module-api/currents.config.js" is not supported
at file:///Users/xxxxx/cypress-cloud-module-api/node_modules/cypress-cloud/index.mjs:7:9
at getCurrentsConfig (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/config/config.ts:43:22)
at resolveCurrentsParams (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/config/params.ts:20:26)
at validateParams (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/config/params.ts:76:18)
at run (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/run.ts:20:27)
at run2 (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/index.ts:13:10)
at file:///Users/xxxxx/cypress-cloud-module-api/index.js:3:23
at ModuleJob.run (node:internal/modules/esm/module_job:185:25)
at async Promise.all (index 0)
at ESMLoader.import (node:internal/modules/esm/loader:281:24)
at loadESM (node:internal/process/esm_loader:88:5)
at handleMainPromise (node:internal/modules/run_main:65:12) +1ms
currents:capture capturing stdout +0ms
When parameters are directly passed to run function
currents:run run params { reporter: 'junit', browser: 'chrome', config: { baseUrl: 'http://localhost:8080', video: true }, projectId: 'blah', recordKey: 'key' } +0ms
currents:config loading currents config file from '/Users/xxxxx/cypress-cloud-module-api/currents.config.js' +0ms
WARNING failed to load config file: /Users/xxxxx/cypress-cloud-module-api/currents.config.js
currents:config failure details: Error: Dynamic require of "/Users/xxxxx/cypress-cloud-module-api/currents.config.js" is not supported
at file:///Users/xxxxx/cypress-cloud-module-api/node_modules/cypress-cloud/index.mjs:7:9
at getCurrentsConfig (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/config/config.ts:43:22)
at resolveCurrentsParams (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/config/params.ts:20:26)
at validateParams (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/config/params.ts:76:18)
at run (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/run.ts:20:27)
at run2 (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/index.ts:13:10)
at file:///Users/xxxxx/cypress-cloud-module-api/index.js:3:23
at ModuleJob.run (node:internal/modules/esm/module_job:185:25)
at async Promise.all (index 0)
at ESMLoader.import (node:internal/modules/esm/loader:281:24)
at loadESM (node:internal/process/esm_loader:88:5)
at handleMainPromise (node:internal/modules/run_main:65:12) +0ms
currents:validateParams validated currents parametes: { reporter: 'junit', browser: 'chrome', config: { baseUrl: 'http://localhost:8080', video: true }, projectId: 'blah', recordKey: 'key', cloudServiceUrl: 'https://cy.currents.dev', batchSize: 3, testingType: 'e2e' } +0ms
currents:config resolving cypress config +31ms
currents:boot booting cypress... +0ms
currents:capture capturing stdout +0ms
file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/bootstrap/bootstrap.ts:20
const cypressBin = await getBinPath(require.resolve("cypress"));
^
TypeError: __require.resolve is not a function
at bootCypress (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/bootstrap/bootstrap.ts:20:47)
at getMergedConfig (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/config/config.ts:66:19)
at run (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/run.ts:34:18)
at file:///Users/xxxxx/cypress-cloud-module-api/index.js:3:17
Test parsing cypress results and produce the expected output
my config
const { totalFailed } = await cyCloud.run({
record: true,
headless: true,
parallel: true,
config:{
video: true,
videoUploadOnPasses:true
},
key: recordKey,
spec: pathToSpec,
project: pathToProject,
configFile: runConfigFile,
ciBuildId: 'cikeys123',
});
In sorry-cypress, in function getVideoUploadUrl reuslt
need to check cypressConfig
to getUrl
but in cyprss-cloud instanceResults
in runtime dont have cypressConfig
upload video
Use cypress version from cypressPckg
to populate a global async context that will be used to set x-cypress-version
HTTP header with every HTTP request.
Would require to have a unified client as described in #5
When trying to import the run function like the provided example import { run } from "cypress-cloud";
I get the following error:
Error [ERR_UNSUPPORTED_DIR_IMPORT]: Directory import '/Users/xxxxx/cypress-cloud-module-api/node_modules/cypress-cloud/' is not supported resolving ES modules imported from /Users/xxxxx/cypress-cloud-module-api/index.js
I tried to do import using import { run } from "cypress-cloud/index.js";
I get:
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './index.js' is not defined by "exports" in /Users/xxxxx/cypress-cloud-module-api/node_modules/cypress-cloud/package.json imported from /Users/xxxxx/cypress-cloud-module-api/index-import-file.js
Test code can be found at https://github.com/lpanger/cypress-cloud-module-api
# Put output below this line
Reusing the same ci build id with different spec files gives an ambiguous message. It's better to show an explicit message.
Also need to check why isn't backed rejected the request for a different list of specs for classic load-balancing.
Example:
Can't run because no spec files were found.
We searched for specs matching this glob pattern:
> /Users/agoldis/currents-demo/cypress/e2e_03/item.spec.js,cypress/e2e_03/smoke.spec.js,cypress/e2e_smoke/smoke.spec.js
Reporting results and artifacts in background...
WARNING Cannot find run result for spec "cypress/e2e_03/item.spec.js"
WARNING Cannot determine run result for spec "cypress/e2e_03/item.spec.js"
WARNING Cannot find run result for spec "cypress/e2e_03/smoke.spec.js"
WARNING Cannot determine run result for spec "cypress/e2e_03/smoke.spec.js"
WARNING Cannot find run result for spec "cypress/e2e_smoke/smoke.spec.js"
WARNING Cannot determine run result for spec "cypress/e2e_smoke/smoke.spec.js"
Show an informative message
Running cc with different spec files and the same ci build id
// Put your logs below this line
here's an example of a test scenario:
program
with set of flags (from cli.ts module)bootCypress
function while mocking IO opsgetStrippedCypressOptions
another example:
program
with set of flags (from cli.ts module)runSpecFile
function while mocking IO opsgetStrippedCypressOptions
Similarly to how cypress does it:
https://docs.cypress.io/guides/references/error-messages#We-could-not-determine-a-unique-CI-build-ID
If we cannot get ciBuildId and none was provided explicitly, show warning and exit
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.