mirror of
https://github.com/cypress-io/cypress.git
synced 2026-05-06 23:10:22 -05:00
405e7f7ccb
* chore(webkit): update error stack parsing and related system tests
* Adding better comment
* Putting column back. Indexing at 1.
* Let's wait for WebKit fixes to land for this
* Using default name/location values already used in stack enhancing logic
* Incorrect bracket in regex
* Trying without location, as the fake location causes more problems downstream.
* Loosening regex around locations in stack replacement
* Defaulting location sans row/column
* Parsing stack lines for reporter with unique regex
* D'oh
* Making the validation against '<unknown>' more specific
* Don't want a capture group here
* Updating spec_isolation system tests
* Consolidating regex pattern to errors package
* Can just keep this global now
* Simplifying regex. Removing lineAndColumn numbers from unknown locations.
* Updating system test stack regex
* Getting better baseline
* Revert "Updating system test stack regex"
This reverts commit 2b91eff369.
* Forking normalization for webkit to track down diffs
* Ensure line or column are set before rendering in enhanced stack
* Need to be a little more flexible
* Tweaking leading newline detection
* Trying out new composed regex
* Few more tweaks for multiple leading newlines and file locations without function name
* Updating remainderOfStack pattern with proper escaping
* Cleaning up comments
* Filtering native code from absolute path logic
* Rebuild CI after outage
4205 lines
147 KiB
JavaScript
4205 lines
147 KiB
JavaScript
exports['e2e spec_isolation / failing with retries enabled'] = `
|
|
|
|
====================================================================================================
|
|
|
|
(Run Starting)
|
|
|
|
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
│ Cypress: 1.2.3 │
|
|
│ Browser: FooBrowser 88 │
|
|
│ Specs: 2 found (simple_failing_hook.cy.js, simple_retrying.cy.js) │
|
|
│ Searched: cypress/e2e/simple_failing_hook.cy.js, cypress/e2e/simple_retrying.cy.js │
|
|
└────────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
|
|
|
|
────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
|
Running: simple_failing_hook.cy.js (1 of 2)
|
|
|
|
|
|
simple failing hook spec
|
|
beforeEach hooks
|
|
(Attempt 1 of 2) never gets here
|
|
1) "before each" hook for "never gets here"
|
|
pending
|
|
- is pending
|
|
afterEach hooks
|
|
(Attempt 1 of 2) runs this
|
|
2) "after each" hook for "runs this"
|
|
after hooks
|
|
✓ runs this
|
|
3) "after all" hook for "fails on this"
|
|
|
|
|
|
1 passing
|
|
1 pending
|
|
3 failing
|
|
|
|
1) simple failing hook spec
|
|
beforeEach hooks
|
|
"before each" hook for "never gets here":
|
|
Error: fail1
|
|
|
|
Because this error occurred during a \`before each\` hook we are skipping the remaining tests in the current suite: \`beforeEach hooks\`
|
|
[stack trace lines]
|
|
|
|
2) simple failing hook spec
|
|
afterEach hooks
|
|
"after each" hook for "runs this":
|
|
Error: fail2
|
|
|
|
Because this error occurred during a \`after each\` hook we are skipping the remaining tests in the current suite: \`afterEach hooks\`
|
|
[stack trace lines]
|
|
|
|
3) simple failing hook spec
|
|
after hooks
|
|
"after all" hook for "fails on this":
|
|
Error: fail3
|
|
|
|
Because this error occurred during a \`after all\` hook we are skipping the remaining tests in the current suite: \`after hooks\`
|
|
|
|
Although you have test retries enabled, we do not retry tests when \`before all\` or \`after all\` hooks fail
|
|
[stack trace lines]
|
|
|
|
|
|
|
|
|
|
(Results)
|
|
|
|
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
│ Tests: 6 │
|
|
│ Passing: 1 │
|
|
│ Failing: 3 │
|
|
│ Pending: 1 │
|
|
│ Skipped: 1 │
|
|
│ Screenshots: 5 │
|
|
│ Video: false │
|
|
│ Duration: X seconds │
|
|
│ Spec Ran: simple_failing_hook.cy.js │
|
|
└────────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
|
|
|
|
(Screenshots)
|
|
|
|
- /XXX/XXX/XXX/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook s (1280x720)
|
|
pec -- beforeEach hooks -- never gets here (failed).png
|
|
- /XXX/XXX/XXX/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook s (1280x720)
|
|
pec -- beforeEach hooks -- never gets here -- before each hook (failed) (attempt
|
|
2).png
|
|
- /XXX/XXX/XXX/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook s (1280x720)
|
|
pec -- afterEach hooks -- runs this -- after each hook (failed).png
|
|
- /XXX/XXX/XXX/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook s (1280x720)
|
|
pec -- afterEach hooks -- runs this -- after each hook (failed) (attempt 2).png
|
|
- /XXX/XXX/XXX/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook s (1280x720)
|
|
pec -- after hooks -- fails on this -- after all hook (failed).png
|
|
|
|
|
|
────────────────────────────────────────────────────────────────────────────────────────────────────
|
|
|
|
Running: simple_retrying.cy.js (2 of 2)
|
|
|
|
|
|
simple retrying spec
|
|
(Attempt 1 of 2) t1
|
|
1) t1
|
|
✓ t2
|
|
|
|
|
|
1 passing
|
|
1 failing
|
|
|
|
1) simple retrying spec
|
|
t1:
|
|
Error: t1 attempt #1
|
|
[stack trace lines]
|
|
|
|
|
|
|
|
|
|
(Results)
|
|
|
|
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
│ Tests: 2 │
|
|
│ Passing: 1 │
|
|
│ Failing: 1 │
|
|
│ Pending: 0 │
|
|
│ Skipped: 0 │
|
|
│ Screenshots: 2 │
|
|
│ Video: false │
|
|
│ Duration: X seconds │
|
|
│ Spec Ran: simple_retrying.cy.js │
|
|
└────────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
|
|
|
|
(Screenshots)
|
|
|
|
- /XXX/XXX/XXX/cypress/screenshots/simple_retrying.cy.js/simple retrying spec -- t (1280x720)
|
|
1 (failed).png
|
|
- /XXX/XXX/XXX/cypress/screenshots/simple_retrying.cy.js/simple retrying spec -- t (1280x720)
|
|
1 (failed) (attempt 2).png
|
|
|
|
|
|
====================================================================================================
|
|
|
|
(Run Finished)
|
|
|
|
|
|
Spec Tests Passing Failing Pending Skipped
|
|
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
│ ✖ simple_failing_hook.cy.js XX:XX 6 1 3 1 1 │
|
|
├────────────────────────────────────────────────────────────────────────────────────────────────┤
|
|
│ ✖ simple_retrying.cy.js XX:XX 2 1 1 - - │
|
|
└────────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
✖ 2 of 2 failed (100%) XX:XX 8 2 4 1 1
|
|
|
|
|
|
`
|
|
|
|
exports['e2e spec_isolation fails [electron] 1'] = {
|
|
"startedTestsAt": "2018-02-01T20:14:19.323Z",
|
|
"endedTestsAt": "2018-02-01T20:14:19.323Z",
|
|
"totalDuration": 5555,
|
|
"totalSuites": 8,
|
|
"totalTests": 12,
|
|
"totalFailed": 5,
|
|
"totalPassed": 5,
|
|
"totalPending": 1,
|
|
"totalSkipped": 1,
|
|
"runs": [
|
|
{
|
|
"stats": {
|
|
"suites": 1,
|
|
"tests": 1,
|
|
"passes": 1,
|
|
"pending": 0,
|
|
"skipped": 0,
|
|
"failures": 0,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"endedAt": "2018-02-01T20:14:19.323Z"
|
|
},
|
|
"reporter": "spec",
|
|
"reporterStats": {
|
|
"suites": 1,
|
|
"tests": 1,
|
|
"passes": 1,
|
|
"pending": 0,
|
|
"failures": 0,
|
|
"start": "2018-02-01T20:14:19.323Z",
|
|
"end": "2018-02-01T20:14:19.323Z",
|
|
"duration": 1234
|
|
},
|
|
"hooks": [
|
|
{
|
|
"hookName": "before each",
|
|
"title": [
|
|
"\"before each\" hook"
|
|
],
|
|
"body": "() => {\n cy.wait(1000);\n }"
|
|
}
|
|
],
|
|
"tests": [
|
|
{
|
|
"title": [
|
|
"simple passing spec",
|
|
"passes"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {\n cy.wrap(true).should('be.true');\n }",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"error": null,
|
|
"video": null,
|
|
"spec": {
|
|
"fileExtension": ".js",
|
|
"baseName": "simple_passing.cy.js",
|
|
"fileName": "simple_passing",
|
|
"specFileExtension": ".cy.js",
|
|
"relativeToCommonRoot": "simple_passing.cy.js",
|
|
"specType": "integration",
|
|
"name": "cypress/e2e/simple_passing.cy.js",
|
|
"relative": "cypress/e2e/simple_passing.cy.js",
|
|
"absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_passing.cy.js"
|
|
},
|
|
"shouldUploadVideo": true
|
|
},
|
|
{
|
|
"stats": {
|
|
"suites": 1,
|
|
"tests": 3,
|
|
"passes": 3,
|
|
"pending": 0,
|
|
"skipped": 0,
|
|
"failures": 0,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"endedAt": "2018-02-01T20:14:19.323Z"
|
|
},
|
|
"reporter": "spec",
|
|
"reporterStats": {
|
|
"suites": 1,
|
|
"tests": 3,
|
|
"passes": 3,
|
|
"pending": 0,
|
|
"failures": 0,
|
|
"start": "2018-02-01T20:14:19.323Z",
|
|
"end": "2018-02-01T20:14:19.323Z",
|
|
"duration": 1234
|
|
},
|
|
"hooks": [
|
|
{
|
|
"hookName": "before all",
|
|
"title": [
|
|
"\"before all\" hook"
|
|
],
|
|
"body": "() => {\n cy.wait(100);\n }"
|
|
},
|
|
{
|
|
"hookName": "before each",
|
|
"title": [
|
|
"\"before each\" hook"
|
|
],
|
|
"body": "() => {\n cy.wait(200);\n }"
|
|
},
|
|
{
|
|
"hookName": "after each",
|
|
"title": [
|
|
"\"after each\" hook"
|
|
],
|
|
"body": "() => {\n cy.wait(200);\n }"
|
|
},
|
|
{
|
|
"hookName": "after all",
|
|
"title": [
|
|
"\"after all\" hook"
|
|
],
|
|
"body": "() => {\n cy.wait(100);\n }"
|
|
}
|
|
],
|
|
"tests": [
|
|
{
|
|
"title": [
|
|
"simple hooks spec",
|
|
"t1"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {\n cy.wrap('t1').should('eq', 't1');\n }",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple hooks spec",
|
|
"t2"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {\n cy.wrap('t2').should('eq', 't2');\n }",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple hooks spec",
|
|
"t3"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {\n cy.wrap('t3').should('eq', 't3');\n }",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"error": null,
|
|
"video": null,
|
|
"spec": {
|
|
"fileExtension": ".js",
|
|
"baseName": "simple_hooks.cy.js",
|
|
"fileName": "simple_hooks",
|
|
"specFileExtension": ".cy.js",
|
|
"relativeToCommonRoot": "simple_hooks.cy.js",
|
|
"specType": "integration",
|
|
"name": "cypress/e2e/simple_hooks.cy.js",
|
|
"relative": "cypress/e2e/simple_hooks.cy.js",
|
|
"absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_hooks.cy.js"
|
|
},
|
|
"shouldUploadVideo": true
|
|
},
|
|
{
|
|
"stats": {
|
|
"suites": 1,
|
|
"tests": 2,
|
|
"passes": 0,
|
|
"pending": 0,
|
|
"skipped": 0,
|
|
"failures": 2,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"endedAt": "2018-02-01T20:14:19.323Z"
|
|
},
|
|
"reporter": "spec",
|
|
"reporterStats": {
|
|
"suites": 1,
|
|
"tests": 2,
|
|
"passes": 0,
|
|
"pending": 0,
|
|
"failures": 2,
|
|
"start": "2018-02-01T20:14:19.323Z",
|
|
"end": "2018-02-01T20:14:19.323Z",
|
|
"duration": 1234
|
|
},
|
|
"hooks": [],
|
|
"tests": [
|
|
{
|
|
"title": [
|
|
"simple failing spec",
|
|
"fails1"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {\n cy.wrap(true, {\n timeout: 100\n }).should('be.false');\n }",
|
|
"displayError": "AssertionError: Timed out retrying after 100ms: expected true to be false\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "AssertionError",
|
|
"message": "Timed out retrying after 100ms: expected true to be false",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 4,
|
|
"column": 37,
|
|
"originalFile": "cypress/e2e/simple_failing.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js",
|
|
"frame": " 2 | describe('simple failing spec', () => {\n 3 | it('fails1', () => {\n> 4 | cy.wrap(true, { timeout: 100 }).should('be.false')\n | ^\n 5 | })\n 6 | \n 7 | it('fails2', () => {",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing.cy.js/simple failing spec -- fails1 (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing spec",
|
|
"fails2"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {\n throw new Error('fails2');\n }",
|
|
"displayError": "Error: fails2\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fails2",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 8,
|
|
"column": 11,
|
|
"originalFile": "cypress/e2e/simple_failing.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js",
|
|
"frame": " 6 | \n 7 | it('fails2', () => {\n> 8 | throw new Error('fails2')\n | ^\n 9 | })\n 10 | })\n 11 | ",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing.cy.js/simple failing spec -- fails2 (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"error": null,
|
|
"video": null,
|
|
"spec": {
|
|
"fileExtension": ".js",
|
|
"baseName": "simple_failing.cy.js",
|
|
"fileName": "simple_failing",
|
|
"specFileExtension": ".cy.js",
|
|
"relativeToCommonRoot": "simple_failing.cy.js",
|
|
"specType": "integration",
|
|
"name": "cypress/e2e/simple_failing.cy.js",
|
|
"relative": "cypress/e2e/simple_failing.cy.js",
|
|
"absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js"
|
|
},
|
|
"shouldUploadVideo": true
|
|
},
|
|
{
|
|
"stats": {
|
|
"suites": 5,
|
|
"tests": 6,
|
|
"passes": 1,
|
|
"pending": 1,
|
|
"skipped": 1,
|
|
"failures": 3,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"endedAt": "2018-02-01T20:14:19.323Z"
|
|
},
|
|
"reporter": "spec",
|
|
"reporterStats": {
|
|
"suites": 5,
|
|
"tests": 5,
|
|
"passes": 1,
|
|
"pending": 1,
|
|
"failures": 3,
|
|
"start": "2018-02-01T20:14:19.323Z",
|
|
"end": "2018-02-01T20:14:19.323Z",
|
|
"duration": 1234
|
|
},
|
|
"hooks": [
|
|
{
|
|
"hookName": "before each",
|
|
"title": [
|
|
"\"before each\" hook"
|
|
],
|
|
"body": "() => {\n throw new Error('fail1');\n }"
|
|
},
|
|
{
|
|
"hookName": "after each",
|
|
"title": [
|
|
"\"after each\" hook"
|
|
],
|
|
"body": "() => {\n throw new Error('fail2');\n }"
|
|
},
|
|
{
|
|
"hookName": "after all",
|
|
"title": [
|
|
"\"after all\" hook"
|
|
],
|
|
"body": "() => {\n throw new Error('fail3');\n }"
|
|
}
|
|
],
|
|
"tests": [
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"beforeEach hooks",
|
|
"never gets here"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {}",
|
|
"displayError": "Error: fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 4,
|
|
"column": 13,
|
|
"originalFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
|
|
"frame": " 2 | context('beforeEach hooks', () => {\n 3 | beforeEach(() => {\n> 4 | throw new Error('fail1')\n | ^\n 5 | })\n 6 | \n 7 | it('never gets here', () => {})",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here -- before each hook (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"pending",
|
|
"is pending"
|
|
],
|
|
"state": "pending",
|
|
"body": "",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "pending",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": null,
|
|
"startedAt": null,
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"afterEach hooks",
|
|
"runs this"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {}",
|
|
"displayError": "Error: fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 16,
|
|
"column": 13,
|
|
"originalFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
|
|
"frame": " 14 | context('afterEach hooks', () => {\n 15 | afterEach(() => {\n> 16 | throw new Error('fail2')\n | ^\n 17 | })\n 18 | \n 19 | it('runs this', () => {})",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"afterEach hooks",
|
|
"does not run this"
|
|
],
|
|
"state": "skipped",
|
|
"body": "() => {}",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "skipped",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": null,
|
|
"startedAt": null,
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"after hooks",
|
|
"runs this"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {}",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"after hooks",
|
|
"fails on this"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {}",
|
|
"displayError": "Error: fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 26,
|
|
"column": 13,
|
|
"originalFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
|
|
"frame": " 24 | context('after hooks', () => {\n 25 | after(() => {\n> 26 | throw new Error('fail3')\n | ^\n 27 | })\n 28 | \n 29 | it('runs this', () => {})",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- after hooks -- fails on this -- after all hook (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"error": null,
|
|
"video": null,
|
|
"spec": {
|
|
"fileExtension": ".js",
|
|
"baseName": "simple_failing_hook.cy.js",
|
|
"fileName": "simple_failing_hook",
|
|
"specFileExtension": ".cy.js",
|
|
"relativeToCommonRoot": "simple_failing_hook.cy.js",
|
|
"specType": "integration",
|
|
"name": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relative": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js"
|
|
},
|
|
"shouldUploadVideo": true
|
|
}
|
|
],
|
|
"browserPath": "path/to/browser",
|
|
"browserName": "FooBrowser",
|
|
"browserVersion": "88",
|
|
"osName": "FooOS",
|
|
"osVersion": "1234",
|
|
"cypressVersion": "9.9.9",
|
|
"config": {},
|
|
"status": "finished"
|
|
}
|
|
|
|
exports['e2e spec_isolation fails [chrome] 1'] = {
|
|
"startedTestsAt": "2018-02-01T20:14:19.323Z",
|
|
"endedTestsAt": "2018-02-01T20:14:19.323Z",
|
|
"totalDuration": 5555,
|
|
"totalSuites": 8,
|
|
"totalTests": 12,
|
|
"totalFailed": 5,
|
|
"totalPassed": 5,
|
|
"totalPending": 1,
|
|
"totalSkipped": 1,
|
|
"runs": [
|
|
{
|
|
"stats": {
|
|
"suites": 1,
|
|
"tests": 1,
|
|
"passes": 1,
|
|
"pending": 0,
|
|
"skipped": 0,
|
|
"failures": 0,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"endedAt": "2018-02-01T20:14:19.323Z"
|
|
},
|
|
"reporter": "spec",
|
|
"reporterStats": {
|
|
"suites": 1,
|
|
"tests": 1,
|
|
"passes": 1,
|
|
"pending": 0,
|
|
"failures": 0,
|
|
"start": "2018-02-01T20:14:19.323Z",
|
|
"end": "2018-02-01T20:14:19.323Z",
|
|
"duration": 1234
|
|
},
|
|
"hooks": [
|
|
{
|
|
"hookName": "before each",
|
|
"title": [
|
|
"\"before each\" hook"
|
|
],
|
|
"body": "() => {\n cy.wait(1000);\n }"
|
|
}
|
|
],
|
|
"tests": [
|
|
{
|
|
"title": [
|
|
"simple passing spec",
|
|
"passes"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {\n cy.wrap(true).should('be.true');\n }",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"error": null,
|
|
"video": null,
|
|
"spec": {
|
|
"fileExtension": ".js",
|
|
"baseName": "simple_passing.cy.js",
|
|
"fileName": "simple_passing",
|
|
"specFileExtension": ".cy.js",
|
|
"relativeToCommonRoot": "simple_passing.cy.js",
|
|
"specType": "integration",
|
|
"name": "cypress/e2e/simple_passing.cy.js",
|
|
"relative": "cypress/e2e/simple_passing.cy.js",
|
|
"absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_passing.cy.js"
|
|
},
|
|
"shouldUploadVideo": true
|
|
},
|
|
{
|
|
"stats": {
|
|
"suites": 1,
|
|
"tests": 3,
|
|
"passes": 3,
|
|
"pending": 0,
|
|
"skipped": 0,
|
|
"failures": 0,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"endedAt": "2018-02-01T20:14:19.323Z"
|
|
},
|
|
"reporter": "spec",
|
|
"reporterStats": {
|
|
"suites": 1,
|
|
"tests": 3,
|
|
"passes": 3,
|
|
"pending": 0,
|
|
"failures": 0,
|
|
"start": "2018-02-01T20:14:19.323Z",
|
|
"end": "2018-02-01T20:14:19.323Z",
|
|
"duration": 1234
|
|
},
|
|
"hooks": [
|
|
{
|
|
"hookName": "before all",
|
|
"title": [
|
|
"\"before all\" hook"
|
|
],
|
|
"body": "() => {\n cy.wait(100);\n }"
|
|
},
|
|
{
|
|
"hookName": "before each",
|
|
"title": [
|
|
"\"before each\" hook"
|
|
],
|
|
"body": "() => {\n cy.wait(200);\n }"
|
|
},
|
|
{
|
|
"hookName": "after each",
|
|
"title": [
|
|
"\"after each\" hook"
|
|
],
|
|
"body": "() => {\n cy.wait(200);\n }"
|
|
},
|
|
{
|
|
"hookName": "after all",
|
|
"title": [
|
|
"\"after all\" hook"
|
|
],
|
|
"body": "() => {\n cy.wait(100);\n }"
|
|
}
|
|
],
|
|
"tests": [
|
|
{
|
|
"title": [
|
|
"simple hooks spec",
|
|
"t1"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {\n cy.wrap('t1').should('eq', 't1');\n }",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple hooks spec",
|
|
"t2"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {\n cy.wrap('t2').should('eq', 't2');\n }",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple hooks spec",
|
|
"t3"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {\n cy.wrap('t3').should('eq', 't3');\n }",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"error": null,
|
|
"video": null,
|
|
"spec": {
|
|
"fileExtension": ".js",
|
|
"baseName": "simple_hooks.cy.js",
|
|
"fileName": "simple_hooks",
|
|
"specFileExtension": ".cy.js",
|
|
"relativeToCommonRoot": "simple_hooks.cy.js",
|
|
"specType": "integration",
|
|
"name": "cypress/e2e/simple_hooks.cy.js",
|
|
"relative": "cypress/e2e/simple_hooks.cy.js",
|
|
"absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_hooks.cy.js"
|
|
},
|
|
"shouldUploadVideo": true
|
|
},
|
|
{
|
|
"stats": {
|
|
"suites": 1,
|
|
"tests": 2,
|
|
"passes": 0,
|
|
"pending": 0,
|
|
"skipped": 0,
|
|
"failures": 2,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"endedAt": "2018-02-01T20:14:19.323Z"
|
|
},
|
|
"reporter": "spec",
|
|
"reporterStats": {
|
|
"suites": 1,
|
|
"tests": 2,
|
|
"passes": 0,
|
|
"pending": 0,
|
|
"failures": 2,
|
|
"start": "2018-02-01T20:14:19.323Z",
|
|
"end": "2018-02-01T20:14:19.323Z",
|
|
"duration": 1234
|
|
},
|
|
"hooks": [],
|
|
"tests": [
|
|
{
|
|
"title": [
|
|
"simple failing spec",
|
|
"fails1"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {\n cy.wrap(true, {\n timeout: 100\n }).should('be.false');\n }",
|
|
"displayError": "AssertionError: Timed out retrying after 100ms: expected true to be false\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "AssertionError",
|
|
"message": "Timed out retrying after 100ms: expected true to be false",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 4,
|
|
"column": 37,
|
|
"originalFile": "cypress/e2e/simple_failing.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js",
|
|
"frame": " 2 | describe('simple failing spec', () => {\n 3 | it('fails1', () => {\n> 4 | cy.wrap(true, { timeout: 100 }).should('be.false')\n | ^\n 5 | })\n 6 | \n 7 | it('fails2', () => {",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing.cy.js/simple failing spec -- fails1 (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing spec",
|
|
"fails2"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {\n throw new Error('fails2');\n }",
|
|
"displayError": "Error: fails2\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fails2",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 8,
|
|
"column": 11,
|
|
"originalFile": "cypress/e2e/simple_failing.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js",
|
|
"frame": " 6 | \n 7 | it('fails2', () => {\n> 8 | throw new Error('fails2')\n | ^\n 9 | })\n 10 | })\n 11 | ",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing.cy.js/simple failing spec -- fails2 (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"error": null,
|
|
"video": null,
|
|
"spec": {
|
|
"fileExtension": ".js",
|
|
"baseName": "simple_failing.cy.js",
|
|
"fileName": "simple_failing",
|
|
"specFileExtension": ".cy.js",
|
|
"relativeToCommonRoot": "simple_failing.cy.js",
|
|
"specType": "integration",
|
|
"name": "cypress/e2e/simple_failing.cy.js",
|
|
"relative": "cypress/e2e/simple_failing.cy.js",
|
|
"absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js"
|
|
},
|
|
"shouldUploadVideo": true
|
|
},
|
|
{
|
|
"stats": {
|
|
"suites": 5,
|
|
"tests": 6,
|
|
"passes": 1,
|
|
"pending": 1,
|
|
"skipped": 1,
|
|
"failures": 3,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"endedAt": "2018-02-01T20:14:19.323Z"
|
|
},
|
|
"reporter": "spec",
|
|
"reporterStats": {
|
|
"suites": 5,
|
|
"tests": 5,
|
|
"passes": 1,
|
|
"pending": 1,
|
|
"failures": 3,
|
|
"start": "2018-02-01T20:14:19.323Z",
|
|
"end": "2018-02-01T20:14:19.323Z",
|
|
"duration": 1234
|
|
},
|
|
"hooks": [
|
|
{
|
|
"hookName": "before each",
|
|
"title": [
|
|
"\"before each\" hook"
|
|
],
|
|
"body": "() => {\n throw new Error('fail1');\n }"
|
|
},
|
|
{
|
|
"hookName": "after each",
|
|
"title": [
|
|
"\"after each\" hook"
|
|
],
|
|
"body": "() => {\n throw new Error('fail2');\n }"
|
|
},
|
|
{
|
|
"hookName": "after all",
|
|
"title": [
|
|
"\"after all\" hook"
|
|
],
|
|
"body": "() => {\n throw new Error('fail3');\n }"
|
|
}
|
|
],
|
|
"tests": [
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"beforeEach hooks",
|
|
"never gets here"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {}",
|
|
"displayError": "Error: fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 4,
|
|
"column": 13,
|
|
"originalFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
|
|
"frame": " 2 | context('beforeEach hooks', () => {\n 3 | beforeEach(() => {\n> 4 | throw new Error('fail1')\n | ^\n 5 | })\n 6 | \n 7 | it('never gets here', () => {})",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here -- before each hook (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"pending",
|
|
"is pending"
|
|
],
|
|
"state": "pending",
|
|
"body": "",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "pending",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": null,
|
|
"startedAt": null,
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"afterEach hooks",
|
|
"runs this"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {}",
|
|
"displayError": "Error: fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 16,
|
|
"column": 13,
|
|
"originalFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
|
|
"frame": " 14 | context('afterEach hooks', () => {\n 15 | afterEach(() => {\n> 16 | throw new Error('fail2')\n | ^\n 17 | })\n 18 | \n 19 | it('runs this', () => {})",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"afterEach hooks",
|
|
"does not run this"
|
|
],
|
|
"state": "skipped",
|
|
"body": "() => {}",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "skipped",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": null,
|
|
"startedAt": null,
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"after hooks",
|
|
"runs this"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {}",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"after hooks",
|
|
"fails on this"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {}",
|
|
"displayError": "Error: fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 26,
|
|
"column": 13,
|
|
"originalFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
|
|
"frame": " 24 | context('after hooks', () => {\n 25 | after(() => {\n> 26 | throw new Error('fail3')\n | ^\n 27 | })\n 28 | \n 29 | it('runs this', () => {})",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- after hooks -- fails on this -- after all hook (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"error": null,
|
|
"video": null,
|
|
"spec": {
|
|
"fileExtension": ".js",
|
|
"baseName": "simple_failing_hook.cy.js",
|
|
"fileName": "simple_failing_hook",
|
|
"specFileExtension": ".cy.js",
|
|
"relativeToCommonRoot": "simple_failing_hook.cy.js",
|
|
"specType": "integration",
|
|
"name": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relative": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js"
|
|
},
|
|
"shouldUploadVideo": true
|
|
}
|
|
],
|
|
"browserPath": "path/to/browser",
|
|
"browserName": "FooBrowser",
|
|
"browserVersion": "88",
|
|
"osName": "FooOS",
|
|
"osVersion": "1234",
|
|
"cypressVersion": "9.9.9",
|
|
"config": {},
|
|
"status": "finished"
|
|
}
|
|
|
|
exports['e2e spec_isolation fails [firefox] 1'] = {
|
|
"startedTestsAt": "2018-02-01T20:14:19.323Z",
|
|
"endedTestsAt": "2018-02-01T20:14:19.323Z",
|
|
"totalDuration": 5555,
|
|
"totalSuites": 8,
|
|
"totalTests": 12,
|
|
"totalFailed": 5,
|
|
"totalPassed": 5,
|
|
"totalPending": 1,
|
|
"totalSkipped": 1,
|
|
"runs": [
|
|
{
|
|
"stats": {
|
|
"suites": 1,
|
|
"tests": 1,
|
|
"passes": 1,
|
|
"pending": 0,
|
|
"skipped": 0,
|
|
"failures": 0,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"endedAt": "2018-02-01T20:14:19.323Z"
|
|
},
|
|
"reporter": "spec",
|
|
"reporterStats": {
|
|
"suites": 1,
|
|
"tests": 1,
|
|
"passes": 1,
|
|
"pending": 0,
|
|
"failures": 0,
|
|
"start": "2018-02-01T20:14:19.323Z",
|
|
"end": "2018-02-01T20:14:19.323Z",
|
|
"duration": 1234
|
|
},
|
|
"hooks": [
|
|
{
|
|
"hookName": "before each",
|
|
"title": [
|
|
"\"before each\" hook"
|
|
],
|
|
"body": "() => {\n cy.wait(1000);\n }"
|
|
}
|
|
],
|
|
"tests": [
|
|
{
|
|
"title": [
|
|
"simple passing spec",
|
|
"passes"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {\n cy.wrap(true).should('be.true');\n }",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"error": null,
|
|
"video": null,
|
|
"spec": {
|
|
"fileExtension": ".js",
|
|
"baseName": "simple_passing.cy.js",
|
|
"fileName": "simple_passing",
|
|
"specFileExtension": ".cy.js",
|
|
"relativeToCommonRoot": "simple_passing.cy.js",
|
|
"specType": "integration",
|
|
"name": "cypress/e2e/simple_passing.cy.js",
|
|
"relative": "cypress/e2e/simple_passing.cy.js",
|
|
"absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_passing.cy.js"
|
|
},
|
|
"shouldUploadVideo": true
|
|
},
|
|
{
|
|
"stats": {
|
|
"suites": 1,
|
|
"tests": 3,
|
|
"passes": 3,
|
|
"pending": 0,
|
|
"skipped": 0,
|
|
"failures": 0,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"endedAt": "2018-02-01T20:14:19.323Z"
|
|
},
|
|
"reporter": "spec",
|
|
"reporterStats": {
|
|
"suites": 1,
|
|
"tests": 3,
|
|
"passes": 3,
|
|
"pending": 0,
|
|
"failures": 0,
|
|
"start": "2018-02-01T20:14:19.323Z",
|
|
"end": "2018-02-01T20:14:19.323Z",
|
|
"duration": 1234
|
|
},
|
|
"hooks": [
|
|
{
|
|
"hookName": "before all",
|
|
"title": [
|
|
"\"before all\" hook"
|
|
],
|
|
"body": "() => {\n cy.wait(100);\n }"
|
|
},
|
|
{
|
|
"hookName": "before each",
|
|
"title": [
|
|
"\"before each\" hook"
|
|
],
|
|
"body": "() => {\n cy.wait(200);\n }"
|
|
},
|
|
{
|
|
"hookName": "after each",
|
|
"title": [
|
|
"\"after each\" hook"
|
|
],
|
|
"body": "() => {\n cy.wait(200);\n }"
|
|
},
|
|
{
|
|
"hookName": "after all",
|
|
"title": [
|
|
"\"after all\" hook"
|
|
],
|
|
"body": "() => {\n cy.wait(100);\n }"
|
|
}
|
|
],
|
|
"tests": [
|
|
{
|
|
"title": [
|
|
"simple hooks spec",
|
|
"t1"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {\n cy.wrap('t1').should('eq', 't1');\n }",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple hooks spec",
|
|
"t2"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {\n cy.wrap('t2').should('eq', 't2');\n }",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple hooks spec",
|
|
"t3"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {\n cy.wrap('t3').should('eq', 't3');\n }",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"error": null,
|
|
"video": null,
|
|
"spec": {
|
|
"fileExtension": ".js",
|
|
"baseName": "simple_hooks.cy.js",
|
|
"fileName": "simple_hooks",
|
|
"specFileExtension": ".cy.js",
|
|
"relativeToCommonRoot": "simple_hooks.cy.js",
|
|
"specType": "integration",
|
|
"name": "cypress/e2e/simple_hooks.cy.js",
|
|
"relative": "cypress/e2e/simple_hooks.cy.js",
|
|
"absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_hooks.cy.js"
|
|
},
|
|
"shouldUploadVideo": true
|
|
},
|
|
{
|
|
"stats": {
|
|
"suites": 1,
|
|
"tests": 2,
|
|
"passes": 0,
|
|
"pending": 0,
|
|
"skipped": 0,
|
|
"failures": 2,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"endedAt": "2018-02-01T20:14:19.323Z"
|
|
},
|
|
"reporter": "spec",
|
|
"reporterStats": {
|
|
"suites": 1,
|
|
"tests": 2,
|
|
"passes": 0,
|
|
"pending": 0,
|
|
"failures": 2,
|
|
"start": "2018-02-01T20:14:19.323Z",
|
|
"end": "2018-02-01T20:14:19.323Z",
|
|
"duration": 1234
|
|
},
|
|
"hooks": [],
|
|
"tests": [
|
|
{
|
|
"title": [
|
|
"simple failing spec",
|
|
"fails1"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {\n cy.wrap(true, {\n timeout: 100\n }).should('be.false');\n }",
|
|
"displayError": "AssertionError: Timed out retrying after 100ms: expected true to be false\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "AssertionError",
|
|
"message": "Timed out retrying after 100ms: expected true to be false",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 4,
|
|
"column": 37,
|
|
"originalFile": "cypress/e2e/simple_failing.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js",
|
|
"frame": " 2 | describe('simple failing spec', () => {\n 3 | it('fails1', () => {\n> 4 | cy.wrap(true, { timeout: 100 }).should('be.false')\n | ^\n 5 | })\n 6 | \n 7 | it('fails2', () => {",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing.cy.js/simple failing spec -- fails1 (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing spec",
|
|
"fails2"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {\n throw new Error('fails2');\n }",
|
|
"displayError": "Error: fails2\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fails2",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 8,
|
|
"column": 11,
|
|
"originalFile": "cypress/e2e/simple_failing.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js",
|
|
"frame": " 6 | \n 7 | it('fails2', () => {\n> 8 | throw new Error('fails2')\n | ^\n 9 | })\n 10 | })\n 11 | ",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing.cy.js/simple failing spec -- fails2 (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"error": null,
|
|
"video": null,
|
|
"spec": {
|
|
"fileExtension": ".js",
|
|
"baseName": "simple_failing.cy.js",
|
|
"fileName": "simple_failing",
|
|
"specFileExtension": ".cy.js",
|
|
"relativeToCommonRoot": "simple_failing.cy.js",
|
|
"specType": "integration",
|
|
"name": "cypress/e2e/simple_failing.cy.js",
|
|
"relative": "cypress/e2e/simple_failing.cy.js",
|
|
"absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js"
|
|
},
|
|
"shouldUploadVideo": true
|
|
},
|
|
{
|
|
"stats": {
|
|
"suites": 5,
|
|
"tests": 6,
|
|
"passes": 1,
|
|
"pending": 1,
|
|
"skipped": 1,
|
|
"failures": 3,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"endedAt": "2018-02-01T20:14:19.323Z"
|
|
},
|
|
"reporter": "spec",
|
|
"reporterStats": {
|
|
"suites": 5,
|
|
"tests": 5,
|
|
"passes": 1,
|
|
"pending": 1,
|
|
"failures": 3,
|
|
"start": "2018-02-01T20:14:19.323Z",
|
|
"end": "2018-02-01T20:14:19.323Z",
|
|
"duration": 1234
|
|
},
|
|
"hooks": [
|
|
{
|
|
"hookName": "before each",
|
|
"title": [
|
|
"\"before each\" hook"
|
|
],
|
|
"body": "() => {\n throw new Error('fail1');\n }"
|
|
},
|
|
{
|
|
"hookName": "after each",
|
|
"title": [
|
|
"\"after each\" hook"
|
|
],
|
|
"body": "() => {\n throw new Error('fail2');\n }"
|
|
},
|
|
{
|
|
"hookName": "after all",
|
|
"title": [
|
|
"\"after all\" hook"
|
|
],
|
|
"body": "() => {\n throw new Error('fail3');\n }"
|
|
}
|
|
],
|
|
"tests": [
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"beforeEach hooks",
|
|
"never gets here"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {}",
|
|
"displayError": "Error: fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 4,
|
|
"column": 13,
|
|
"originalFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
|
|
"frame": " 2 | context('beforeEach hooks', () => {\n 3 | beforeEach(() => {\n> 4 | throw new Error('fail1')\n | ^\n 5 | })\n 6 | \n 7 | it('never gets here', () => {})",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here -- before each hook (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"pending",
|
|
"is pending"
|
|
],
|
|
"state": "pending",
|
|
"body": "",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "pending",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": null,
|
|
"startedAt": null,
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"afterEach hooks",
|
|
"runs this"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {}",
|
|
"displayError": "Error: fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 16,
|
|
"column": 13,
|
|
"originalFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
|
|
"frame": " 14 | context('afterEach hooks', () => {\n 15 | afterEach(() => {\n> 16 | throw new Error('fail2')\n | ^\n 17 | })\n 18 | \n 19 | it('runs this', () => {})",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"afterEach hooks",
|
|
"does not run this"
|
|
],
|
|
"state": "skipped",
|
|
"body": "() => {}",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "skipped",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": null,
|
|
"startedAt": null,
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"after hooks",
|
|
"runs this"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {}",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"after hooks",
|
|
"fails on this"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {}",
|
|
"displayError": "Error: fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 26,
|
|
"column": 13,
|
|
"originalFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
|
|
"frame": " 24 | context('after hooks', () => {\n 25 | after(() => {\n> 26 | throw new Error('fail3')\n | ^\n 27 | })\n 28 | \n 29 | it('runs this', () => {})",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- after hooks -- fails on this -- after all hook (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"error": null,
|
|
"video": null,
|
|
"spec": {
|
|
"fileExtension": ".js",
|
|
"baseName": "simple_failing_hook.cy.js",
|
|
"fileName": "simple_failing_hook",
|
|
"specFileExtension": ".cy.js",
|
|
"relativeToCommonRoot": "simple_failing_hook.cy.js",
|
|
"specType": "integration",
|
|
"name": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relative": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js"
|
|
},
|
|
"shouldUploadVideo": true
|
|
}
|
|
],
|
|
"browserPath": "path/to/browser",
|
|
"browserName": "FooBrowser",
|
|
"browserVersion": "88",
|
|
"osName": "FooOS",
|
|
"osVersion": "1234",
|
|
"cypressVersion": "9.9.9",
|
|
"config": {},
|
|
"status": "finished"
|
|
}
|
|
|
|
exports['e2e spec_isolation failing with retries enabled [electron] 1'] = {
|
|
"startedTestsAt": "2018-02-01T20:14:19.323Z",
|
|
"endedTestsAt": "2018-02-01T20:14:19.323Z",
|
|
"totalDuration": 5555,
|
|
"totalSuites": 6,
|
|
"totalTests": 8,
|
|
"totalFailed": 4,
|
|
"totalPassed": 2,
|
|
"totalPending": 1,
|
|
"totalSkipped": 1,
|
|
"runs": [
|
|
{
|
|
"stats": {
|
|
"suites": 5,
|
|
"tests": 6,
|
|
"passes": 1,
|
|
"pending": 1,
|
|
"skipped": 1,
|
|
"failures": 3,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"endedAt": "2018-02-01T20:14:19.323Z"
|
|
},
|
|
"reporter": "spec",
|
|
"reporterStats": {
|
|
"suites": 5,
|
|
"tests": 5,
|
|
"passes": 1,
|
|
"pending": 1,
|
|
"failures": 3,
|
|
"start": "2018-02-01T20:14:19.323Z",
|
|
"end": "2018-02-01T20:14:19.323Z",
|
|
"duration": 1234
|
|
},
|
|
"hooks": [
|
|
{
|
|
"hookName": "before each",
|
|
"title": [
|
|
"\"before each\" hook"
|
|
],
|
|
"body": "() => {\n throw new Error('fail1');\n }"
|
|
},
|
|
{
|
|
"hookName": "after each",
|
|
"title": [
|
|
"\"after each\" hook"
|
|
],
|
|
"body": "() => {\n throw new Error('fail2');\n }"
|
|
},
|
|
{
|
|
"hookName": "after all",
|
|
"title": [
|
|
"\"after all\" hook"
|
|
],
|
|
"body": "() => {\n throw new Error('fail3');\n }"
|
|
}
|
|
],
|
|
"tests": [
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"beforeEach hooks",
|
|
"never gets here"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {}",
|
|
"displayError": "Error: fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail1",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 4,
|
|
"column": 13,
|
|
"originalFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
|
|
"frame": " 2 | context('beforeEach hooks', () => {\n 3 | beforeEach(() => {\n> 4 | throw new Error('fail1')\n | ^\n 5 | })\n 6 | \n 7 | it('never gets here', () => {})",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 4,
|
|
"column": 13,
|
|
"originalFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
|
|
"frame": " 2 | context('beforeEach hooks', () => {\n 3 | beforeEach(() => {\n> 4 | throw new Error('fail1')\n | ^\n 5 | })\n 6 | \n 7 | it('never gets here', () => {})",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here -- before each hook (failed) (attempt 2).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"pending",
|
|
"is pending"
|
|
],
|
|
"state": "pending",
|
|
"body": "",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "pending",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": null,
|
|
"startedAt": null,
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"afterEach hooks",
|
|
"runs this"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {}",
|
|
"displayError": "Error: fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail2",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 16,
|
|
"column": 13,
|
|
"originalFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
|
|
"frame": " 14 | context('afterEach hooks', () => {\n 15 | afterEach(() => {\n> 16 | throw new Error('fail2')\n | ^\n 17 | })\n 18 | \n 19 | it('runs this', () => {})",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 16,
|
|
"column": 13,
|
|
"originalFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
|
|
"frame": " 14 | context('afterEach hooks', () => {\n 15 | afterEach(() => {\n> 16 | throw new Error('fail2')\n | ^\n 17 | })\n 18 | \n 19 | it('runs this', () => {})",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed) (attempt 2).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"afterEach hooks",
|
|
"does not run this"
|
|
],
|
|
"state": "skipped",
|
|
"body": "() => {}",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "skipped",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": null,
|
|
"startedAt": null,
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"after hooks",
|
|
"runs this"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {}",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"after hooks",
|
|
"fails on this"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {}",
|
|
"displayError": "Error: fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n\nAlthough you have test retries enabled, we do not retry tests when `before all` or `after all` hooks fail\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n\nAlthough you have test retries enabled, we do not retry tests when `before all` or `after all` hooks fail",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 26,
|
|
"column": 13,
|
|
"originalFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
|
|
"frame": " 24 | context('after hooks', () => {\n 25 | after(() => {\n> 26 | throw new Error('fail3')\n | ^\n 27 | })\n 28 | \n 29 | it('runs this', () => {})",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- after hooks -- fails on this -- after all hook (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"error": null,
|
|
"video": null,
|
|
"spec": {
|
|
"fileExtension": ".js",
|
|
"baseName": "simple_failing_hook.cy.js",
|
|
"fileName": "simple_failing_hook",
|
|
"specFileExtension": ".cy.js",
|
|
"relativeToCommonRoot": "simple_failing_hook.cy.js",
|
|
"specType": "integration",
|
|
"name": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relative": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js"
|
|
},
|
|
"shouldUploadVideo": true
|
|
},
|
|
{
|
|
"stats": {
|
|
"suites": 1,
|
|
"tests": 2,
|
|
"passes": 1,
|
|
"pending": 0,
|
|
"skipped": 0,
|
|
"failures": 1,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"endedAt": "2018-02-01T20:14:19.323Z"
|
|
},
|
|
"reporter": "spec",
|
|
"reporterStats": {
|
|
"suites": 1,
|
|
"tests": 2,
|
|
"passes": 1,
|
|
"pending": 0,
|
|
"failures": 1,
|
|
"start": "2018-02-01T20:14:19.323Z",
|
|
"end": "2018-02-01T20:14:19.323Z",
|
|
"duration": 1234
|
|
},
|
|
"hooks": [],
|
|
"tests": [
|
|
{
|
|
"title": [
|
|
"simple retrying spec",
|
|
"t1"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {\n const test = cy.state('test');\n throw new Error(`${test.title} attempt #${cy.state('test').currentRetry()}`);\n }",
|
|
"displayError": "Error: t1 attempt #1\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "t1 attempt #0",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 5,
|
|
"column": 11,
|
|
"originalFile": "cypress/e2e/simple_retrying.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_retrying.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js",
|
|
"frame": " 3 | const test = cy.state('test')\n 4 | \n> 5 | throw new Error(`${test.title} attempt #${cy.state('test').currentRetry()}`)\n | ^\n 6 | })\n 7 | \n 8 | it('t2', () => {",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_retrying.cy.js/simple retrying spec -- t1 (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "t1 attempt #1",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 5,
|
|
"column": 11,
|
|
"originalFile": "cypress/e2e/simple_retrying.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_retrying.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js",
|
|
"frame": " 3 | const test = cy.state('test')\n 4 | \n> 5 | throw new Error(`${test.title} attempt #${cy.state('test').currentRetry()}`)\n | ^\n 6 | })\n 7 | \n 8 | it('t2', () => {",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_retrying.cy.js/simple retrying spec -- t1 (failed) (attempt 2).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple retrying spec",
|
|
"t2"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {// pass\n }",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"error": null,
|
|
"video": null,
|
|
"spec": {
|
|
"fileExtension": ".js",
|
|
"baseName": "simple_retrying.cy.js",
|
|
"fileName": "simple_retrying",
|
|
"specFileExtension": ".cy.js",
|
|
"relativeToCommonRoot": "simple_retrying.cy.js",
|
|
"specType": "integration",
|
|
"name": "cypress/e2e/simple_retrying.cy.js",
|
|
"relative": "cypress/e2e/simple_retrying.cy.js",
|
|
"absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js"
|
|
},
|
|
"shouldUploadVideo": true
|
|
}
|
|
],
|
|
"browserPath": "path/to/browser",
|
|
"browserName": "FooBrowser",
|
|
"browserVersion": "88",
|
|
"osName": "FooOS",
|
|
"osVersion": "1234",
|
|
"cypressVersion": "9.9.9",
|
|
"config": {},
|
|
"status": "finished"
|
|
}
|
|
|
|
exports['e2e spec_isolation failing with retries enabled [chrome] 1'] = {
|
|
"startedTestsAt": "2018-02-01T20:14:19.323Z",
|
|
"endedTestsAt": "2018-02-01T20:14:19.323Z",
|
|
"totalDuration": 5555,
|
|
"totalSuites": 6,
|
|
"totalTests": 8,
|
|
"totalFailed": 4,
|
|
"totalPassed": 2,
|
|
"totalPending": 1,
|
|
"totalSkipped": 1,
|
|
"runs": [
|
|
{
|
|
"stats": {
|
|
"suites": 5,
|
|
"tests": 6,
|
|
"passes": 1,
|
|
"pending": 1,
|
|
"skipped": 1,
|
|
"failures": 3,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"endedAt": "2018-02-01T20:14:19.323Z"
|
|
},
|
|
"reporter": "spec",
|
|
"reporterStats": {
|
|
"suites": 5,
|
|
"tests": 5,
|
|
"passes": 1,
|
|
"pending": 1,
|
|
"failures": 3,
|
|
"start": "2018-02-01T20:14:19.323Z",
|
|
"end": "2018-02-01T20:14:19.323Z",
|
|
"duration": 1234
|
|
},
|
|
"hooks": [
|
|
{
|
|
"hookName": "before each",
|
|
"title": [
|
|
"\"before each\" hook"
|
|
],
|
|
"body": "() => {\n throw new Error('fail1');\n }"
|
|
},
|
|
{
|
|
"hookName": "after each",
|
|
"title": [
|
|
"\"after each\" hook"
|
|
],
|
|
"body": "() => {\n throw new Error('fail2');\n }"
|
|
},
|
|
{
|
|
"hookName": "after all",
|
|
"title": [
|
|
"\"after all\" hook"
|
|
],
|
|
"body": "() => {\n throw new Error('fail3');\n }"
|
|
}
|
|
],
|
|
"tests": [
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"beforeEach hooks",
|
|
"never gets here"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {}",
|
|
"displayError": "Error: fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail1",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 4,
|
|
"column": 13,
|
|
"originalFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
|
|
"frame": " 2 | context('beforeEach hooks', () => {\n 3 | beforeEach(() => {\n> 4 | throw new Error('fail1')\n | ^\n 5 | })\n 6 | \n 7 | it('never gets here', () => {})",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 4,
|
|
"column": 13,
|
|
"originalFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
|
|
"frame": " 2 | context('beforeEach hooks', () => {\n 3 | beforeEach(() => {\n> 4 | throw new Error('fail1')\n | ^\n 5 | })\n 6 | \n 7 | it('never gets here', () => {})",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here -- before each hook (failed) (attempt 2).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"pending",
|
|
"is pending"
|
|
],
|
|
"state": "pending",
|
|
"body": "",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "pending",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": null,
|
|
"startedAt": null,
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"afterEach hooks",
|
|
"runs this"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {}",
|
|
"displayError": "Error: fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail2",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 16,
|
|
"column": 13,
|
|
"originalFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
|
|
"frame": " 14 | context('afterEach hooks', () => {\n 15 | afterEach(() => {\n> 16 | throw new Error('fail2')\n | ^\n 17 | })\n 18 | \n 19 | it('runs this', () => {})",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 16,
|
|
"column": 13,
|
|
"originalFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
|
|
"frame": " 14 | context('afterEach hooks', () => {\n 15 | afterEach(() => {\n> 16 | throw new Error('fail2')\n | ^\n 17 | })\n 18 | \n 19 | it('runs this', () => {})",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed) (attempt 2).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"afterEach hooks",
|
|
"does not run this"
|
|
],
|
|
"state": "skipped",
|
|
"body": "() => {}",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "skipped",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": null,
|
|
"startedAt": null,
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"after hooks",
|
|
"runs this"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {}",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"after hooks",
|
|
"fails on this"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {}",
|
|
"displayError": "Error: fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n\nAlthough you have test retries enabled, we do not retry tests when `before all` or `after all` hooks fail\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n\nAlthough you have test retries enabled, we do not retry tests when `before all` or `after all` hooks fail",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 26,
|
|
"column": 13,
|
|
"originalFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
|
|
"frame": " 24 | context('after hooks', () => {\n 25 | after(() => {\n> 26 | throw new Error('fail3')\n | ^\n 27 | })\n 28 | \n 29 | it('runs this', () => {})",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- after hooks -- fails on this -- after all hook (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"error": null,
|
|
"video": null,
|
|
"spec": {
|
|
"fileExtension": ".js",
|
|
"baseName": "simple_failing_hook.cy.js",
|
|
"fileName": "simple_failing_hook",
|
|
"specFileExtension": ".cy.js",
|
|
"relativeToCommonRoot": "simple_failing_hook.cy.js",
|
|
"specType": "integration",
|
|
"name": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relative": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js"
|
|
},
|
|
"shouldUploadVideo": true
|
|
},
|
|
{
|
|
"stats": {
|
|
"suites": 1,
|
|
"tests": 2,
|
|
"passes": 1,
|
|
"pending": 0,
|
|
"skipped": 0,
|
|
"failures": 1,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"endedAt": "2018-02-01T20:14:19.323Z"
|
|
},
|
|
"reporter": "spec",
|
|
"reporterStats": {
|
|
"suites": 1,
|
|
"tests": 2,
|
|
"passes": 1,
|
|
"pending": 0,
|
|
"failures": 1,
|
|
"start": "2018-02-01T20:14:19.323Z",
|
|
"end": "2018-02-01T20:14:19.323Z",
|
|
"duration": 1234
|
|
},
|
|
"hooks": [],
|
|
"tests": [
|
|
{
|
|
"title": [
|
|
"simple retrying spec",
|
|
"t1"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {\n const test = cy.state('test');\n throw new Error(`${test.title} attempt #${cy.state('test').currentRetry()}`);\n }",
|
|
"displayError": "Error: t1 attempt #1\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "t1 attempt #0",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 5,
|
|
"column": 11,
|
|
"originalFile": "cypress/e2e/simple_retrying.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_retrying.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js",
|
|
"frame": " 3 | const test = cy.state('test')\n 4 | \n> 5 | throw new Error(`${test.title} attempt #${cy.state('test').currentRetry()}`)\n | ^\n 6 | })\n 7 | \n 8 | it('t2', () => {",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_retrying.cy.js/simple retrying spec -- t1 (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "t1 attempt #1",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 5,
|
|
"column": 11,
|
|
"originalFile": "cypress/e2e/simple_retrying.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_retrying.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js",
|
|
"frame": " 3 | const test = cy.state('test')\n 4 | \n> 5 | throw new Error(`${test.title} attempt #${cy.state('test').currentRetry()}`)\n | ^\n 6 | })\n 7 | \n 8 | it('t2', () => {",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_retrying.cy.js/simple retrying spec -- t1 (failed) (attempt 2).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple retrying spec",
|
|
"t2"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {// pass\n }",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"error": null,
|
|
"video": null,
|
|
"spec": {
|
|
"fileExtension": ".js",
|
|
"baseName": "simple_retrying.cy.js",
|
|
"fileName": "simple_retrying",
|
|
"specFileExtension": ".cy.js",
|
|
"relativeToCommonRoot": "simple_retrying.cy.js",
|
|
"specType": "integration",
|
|
"name": "cypress/e2e/simple_retrying.cy.js",
|
|
"relative": "cypress/e2e/simple_retrying.cy.js",
|
|
"absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js"
|
|
},
|
|
"shouldUploadVideo": true
|
|
}
|
|
],
|
|
"browserPath": "path/to/browser",
|
|
"browserName": "FooBrowser",
|
|
"browserVersion": "88",
|
|
"osName": "FooOS",
|
|
"osVersion": "1234",
|
|
"cypressVersion": "9.9.9",
|
|
"config": {},
|
|
"status": "finished"
|
|
}
|
|
|
|
exports['e2e spec_isolation failing with retries enabled [firefox] 1'] = {
|
|
"startedTestsAt": "2018-02-01T20:14:19.323Z",
|
|
"endedTestsAt": "2018-02-01T20:14:19.323Z",
|
|
"totalDuration": 5555,
|
|
"totalSuites": 6,
|
|
"totalTests": 8,
|
|
"totalFailed": 4,
|
|
"totalPassed": 2,
|
|
"totalPending": 1,
|
|
"totalSkipped": 1,
|
|
"runs": [
|
|
{
|
|
"stats": {
|
|
"suites": 5,
|
|
"tests": 6,
|
|
"passes": 1,
|
|
"pending": 1,
|
|
"skipped": 1,
|
|
"failures": 3,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"endedAt": "2018-02-01T20:14:19.323Z"
|
|
},
|
|
"reporter": "spec",
|
|
"reporterStats": {
|
|
"suites": 5,
|
|
"tests": 5,
|
|
"passes": 1,
|
|
"pending": 1,
|
|
"failures": 3,
|
|
"start": "2018-02-01T20:14:19.323Z",
|
|
"end": "2018-02-01T20:14:19.323Z",
|
|
"duration": 1234
|
|
},
|
|
"hooks": [
|
|
{
|
|
"hookName": "before each",
|
|
"title": [
|
|
"\"before each\" hook"
|
|
],
|
|
"body": "() => {\n throw new Error('fail1');\n }"
|
|
},
|
|
{
|
|
"hookName": "after each",
|
|
"title": [
|
|
"\"after each\" hook"
|
|
],
|
|
"body": "() => {\n throw new Error('fail2');\n }"
|
|
},
|
|
{
|
|
"hookName": "after all",
|
|
"title": [
|
|
"\"after all\" hook"
|
|
],
|
|
"body": "() => {\n throw new Error('fail3');\n }"
|
|
}
|
|
],
|
|
"tests": [
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"beforeEach hooks",
|
|
"never gets here"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {}",
|
|
"displayError": "Error: fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail1",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 4,
|
|
"column": 13,
|
|
"originalFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
|
|
"frame": " 2 | context('beforeEach hooks', () => {\n 3 | beforeEach(() => {\n> 4 | throw new Error('fail1')\n | ^\n 5 | })\n 6 | \n 7 | it('never gets here', () => {})",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 4,
|
|
"column": 13,
|
|
"originalFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
|
|
"frame": " 2 | context('beforeEach hooks', () => {\n 3 | beforeEach(() => {\n> 4 | throw new Error('fail1')\n | ^\n 5 | })\n 6 | \n 7 | it('never gets here', () => {})",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here -- before each hook (failed) (attempt 2).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"pending",
|
|
"is pending"
|
|
],
|
|
"state": "pending",
|
|
"body": "",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "pending",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": null,
|
|
"startedAt": null,
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"afterEach hooks",
|
|
"runs this"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {}",
|
|
"displayError": "Error: fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail2",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 16,
|
|
"column": 13,
|
|
"originalFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
|
|
"frame": " 14 | context('afterEach hooks', () => {\n 15 | afterEach(() => {\n> 16 | throw new Error('fail2')\n | ^\n 17 | })\n 18 | \n 19 | it('runs this', () => {})",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 16,
|
|
"column": 13,
|
|
"originalFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
|
|
"frame": " 14 | context('afterEach hooks', () => {\n 15 | afterEach(() => {\n> 16 | throw new Error('fail2')\n | ^\n 17 | })\n 18 | \n 19 | it('runs this', () => {})",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed) (attempt 2).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"afterEach hooks",
|
|
"does not run this"
|
|
],
|
|
"state": "skipped",
|
|
"body": "() => {}",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "skipped",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": null,
|
|
"startedAt": null,
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"after hooks",
|
|
"runs this"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {}",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"after hooks",
|
|
"fails on this"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {}",
|
|
"displayError": "Error: fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n\nAlthough you have test retries enabled, we do not retry tests when `before all` or `after all` hooks fail\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n\nAlthough you have test retries enabled, we do not retry tests when `before all` or `after all` hooks fail",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 26,
|
|
"column": 13,
|
|
"originalFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js",
|
|
"frame": " 24 | context('after hooks', () => {\n 25 | after(() => {\n> 26 | throw new Error('fail3')\n | ^\n 27 | })\n 28 | \n 29 | it('runs this', () => {})",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- after hooks -- fails on this -- after all hook (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"error": null,
|
|
"video": null,
|
|
"spec": {
|
|
"fileExtension": ".js",
|
|
"baseName": "simple_failing_hook.cy.js",
|
|
"fileName": "simple_failing_hook",
|
|
"specFileExtension": ".cy.js",
|
|
"relativeToCommonRoot": "simple_failing_hook.cy.js",
|
|
"specType": "integration",
|
|
"name": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relative": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js"
|
|
},
|
|
"shouldUploadVideo": true
|
|
},
|
|
{
|
|
"stats": {
|
|
"suites": 1,
|
|
"tests": 2,
|
|
"passes": 1,
|
|
"pending": 0,
|
|
"skipped": 0,
|
|
"failures": 1,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"endedAt": "2018-02-01T20:14:19.323Z"
|
|
},
|
|
"reporter": "spec",
|
|
"reporterStats": {
|
|
"suites": 1,
|
|
"tests": 2,
|
|
"passes": 1,
|
|
"pending": 0,
|
|
"failures": 1,
|
|
"start": "2018-02-01T20:14:19.323Z",
|
|
"end": "2018-02-01T20:14:19.323Z",
|
|
"duration": 1234
|
|
},
|
|
"hooks": [],
|
|
"tests": [
|
|
{
|
|
"title": [
|
|
"simple retrying spec",
|
|
"t1"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {\n const test = cy.state('test');\n throw new Error(`${test.title} attempt #${cy.state('test').currentRetry()}`);\n }",
|
|
"displayError": "Error: t1 attempt #1\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "t1 attempt #0",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 5,
|
|
"column": 11,
|
|
"originalFile": "cypress/e2e/simple_retrying.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_retrying.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js",
|
|
"frame": " 3 | const test = cy.state('test')\n 4 | \n> 5 | throw new Error(`${test.title} attempt #${cy.state('test').currentRetry()}`)\n | ^\n 6 | })\n 7 | \n 8 | it('t2', () => {",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_retrying.cy.js/simple retrying spec -- t1 (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "t1 attempt #1",
|
|
"stack": "[stack trace lines]",
|
|
"codeFrame": {
|
|
"line": 5,
|
|
"column": 11,
|
|
"originalFile": "cypress/e2e/simple_retrying.cy.js",
|
|
"relativeFile": "cypress/e2e/simple_retrying.cy.js",
|
|
"absoluteFile": "/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js",
|
|
"frame": " 3 | const test = cy.state('test')\n 4 | \n> 5 | throw new Error(`${test.title} attempt #${cy.state('test').currentRetry()}`)\n | ^\n 6 | })\n 7 | \n 8 | it('t2', () => {",
|
|
"language": "js"
|
|
}
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_retrying.cy.js/simple retrying spec -- t1 (failed) (attempt 2).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple retrying spec",
|
|
"t2"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {// pass\n }",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"error": null,
|
|
"video": null,
|
|
"spec": {
|
|
"fileExtension": ".js",
|
|
"baseName": "simple_retrying.cy.js",
|
|
"fileName": "simple_retrying",
|
|
"specFileExtension": ".cy.js",
|
|
"relativeToCommonRoot": "simple_retrying.cy.js",
|
|
"specType": "integration",
|
|
"name": "cypress/e2e/simple_retrying.cy.js",
|
|
"relative": "cypress/e2e/simple_retrying.cy.js",
|
|
"absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js"
|
|
},
|
|
"shouldUploadVideo": true
|
|
}
|
|
],
|
|
"browserPath": "path/to/browser",
|
|
"browserName": "FooBrowser",
|
|
"browserVersion": "88",
|
|
"osName": "FooOS",
|
|
"osVersion": "1234",
|
|
"cypressVersion": "9.9.9",
|
|
"config": {},
|
|
"status": "finished"
|
|
}
|
|
|
|
exports['e2e spec_isolation failing with retries enabled [webkit] 1'] = {
|
|
"status": "finished",
|
|
"startedTestsAt": "2018-02-01T20:14:19.323Z",
|
|
"endedTestsAt": "2018-02-01T20:14:19.323Z",
|
|
"totalDuration": 5555,
|
|
"totalSuites": 6,
|
|
"totalTests": 8,
|
|
"totalPassed": 2,
|
|
"totalPending": 1,
|
|
"totalFailed": 4,
|
|
"totalSkipped": 1,
|
|
"runs": [
|
|
{
|
|
"stats": {
|
|
"suites": 5,
|
|
"tests": 6,
|
|
"passes": 1,
|
|
"pending": 1,
|
|
"skipped": 1,
|
|
"failures": 3,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"endedAt": "2018-02-01T20:14:19.323Z"
|
|
},
|
|
"reporter": "spec",
|
|
"reporterStats": {
|
|
"suites": 5,
|
|
"tests": 5,
|
|
"passes": 1,
|
|
"pending": 1,
|
|
"failures": 3,
|
|
"start": "2018-02-01T20:14:19.323Z",
|
|
"end": "2018-02-01T20:14:19.323Z",
|
|
"duration": 1234
|
|
},
|
|
"hooks": [
|
|
{
|
|
"hookName": "before each",
|
|
"title": [
|
|
"\"before each\" hook"
|
|
],
|
|
"body": "() => {\n throw new Error('fail1');\n }"
|
|
},
|
|
{
|
|
"hookName": "after each",
|
|
"title": [
|
|
"\"after each\" hook"
|
|
],
|
|
"body": "() => {\n throw new Error('fail2');\n }"
|
|
},
|
|
{
|
|
"hookName": "after all",
|
|
"title": [
|
|
"\"after all\" hook"
|
|
],
|
|
"body": "() => {\n throw new Error('fail3');\n }"
|
|
}
|
|
],
|
|
"tests": [
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"beforeEach hooks",
|
|
"never gets here"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {}",
|
|
"displayError": "Error: fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail1",
|
|
"stack": "[stack trace lines]"
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`",
|
|
"stack": "[stack trace lines]"
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here -- before each hook (failed) (attempt 2).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"pending",
|
|
"is pending"
|
|
],
|
|
"state": "pending",
|
|
"body": "",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "pending",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": null,
|
|
"startedAt": null,
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"afterEach hooks",
|
|
"runs this"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {}",
|
|
"displayError": "Error: fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail2",
|
|
"stack": "[stack trace lines]"
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`",
|
|
"stack": "[stack trace lines]"
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed) (attempt 2).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"afterEach hooks",
|
|
"does not run this"
|
|
],
|
|
"state": "skipped",
|
|
"body": "() => {}",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "skipped",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": null,
|
|
"startedAt": null,
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"after hooks",
|
|
"runs this"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {}",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"after hooks",
|
|
"fails on this"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {}",
|
|
"displayError": "Error: fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n\nAlthough you have test retries enabled, we do not retry tests when `before all` or `after all` hooks fail\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n\nAlthough you have test retries enabled, we do not retry tests when `before all` or `after all` hooks fail",
|
|
"stack": "[stack trace lines]"
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- after hooks -- fails on this -- after all hook (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"error": null,
|
|
"video": null,
|
|
"spec": {
|
|
"fileExtension": ".js",
|
|
"baseName": "simple_failing_hook.cy.js",
|
|
"fileName": "simple_failing_hook",
|
|
"specFileExtension": ".cy.js",
|
|
"relativeToCommonRoot": "simple_failing_hook.cy.js",
|
|
"specType": "integration",
|
|
"name": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relative": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js"
|
|
},
|
|
"shouldUploadVideo": true
|
|
},
|
|
{
|
|
"stats": {
|
|
"suites": 1,
|
|
"tests": 2,
|
|
"passes": 1,
|
|
"pending": 0,
|
|
"skipped": 0,
|
|
"failures": 1,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"endedAt": "2018-02-01T20:14:19.323Z"
|
|
},
|
|
"reporter": "spec",
|
|
"reporterStats": {
|
|
"suites": 1,
|
|
"tests": 2,
|
|
"passes": 1,
|
|
"pending": 0,
|
|
"failures": 1,
|
|
"start": "2018-02-01T20:14:19.323Z",
|
|
"end": "2018-02-01T20:14:19.323Z",
|
|
"duration": 1234
|
|
},
|
|
"hooks": [],
|
|
"tests": [
|
|
{
|
|
"title": [
|
|
"simple retrying spec",
|
|
"t1"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {\n const test = cy.state('test');\n throw new Error(`${test.title} attempt #${cy.state('test').currentRetry()}`);\n }",
|
|
"displayError": "Error: t1 attempt #1\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "t1 attempt #0",
|
|
"stack": "[stack trace lines]"
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_retrying.cy.js/simple retrying spec -- t1 (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "t1 attempt #1",
|
|
"stack": "[stack trace lines]"
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_retrying.cy.js/simple retrying spec -- t1 (failed) (attempt 2).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple retrying spec",
|
|
"t2"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {// pass\n }",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"error": null,
|
|
"video": null,
|
|
"spec": {
|
|
"fileExtension": ".js",
|
|
"baseName": "simple_retrying.cy.js",
|
|
"fileName": "simple_retrying",
|
|
"specFileExtension": ".cy.js",
|
|
"relativeToCommonRoot": "simple_retrying.cy.js",
|
|
"specType": "integration",
|
|
"name": "cypress/e2e/simple_retrying.cy.js",
|
|
"relative": "cypress/e2e/simple_retrying.cy.js",
|
|
"absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_retrying.cy.js"
|
|
},
|
|
"shouldUploadVideo": true
|
|
}
|
|
],
|
|
"browserPath": "path/to/browser",
|
|
"browserName": "FooBrowser",
|
|
"browserVersion": "88",
|
|
"osName": "FooOS",
|
|
"osVersion": "1234",
|
|
"cypressVersion": "9.9.9",
|
|
"config": {}
|
|
}
|
|
|
|
exports['e2e spec_isolation fails [webkit] 1'] = {
|
|
"status": "finished",
|
|
"startedTestsAt": "2018-02-01T20:14:19.323Z",
|
|
"endedTestsAt": "2018-02-01T20:14:19.323Z",
|
|
"totalDuration": 5555,
|
|
"totalSuites": 8,
|
|
"totalTests": 12,
|
|
"totalPassed": 5,
|
|
"totalPending": 1,
|
|
"totalFailed": 5,
|
|
"totalSkipped": 1,
|
|
"runs": [
|
|
{
|
|
"stats": {
|
|
"suites": 1,
|
|
"tests": 1,
|
|
"passes": 1,
|
|
"pending": 0,
|
|
"skipped": 0,
|
|
"failures": 0,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"endedAt": "2018-02-01T20:14:19.323Z"
|
|
},
|
|
"reporter": "spec",
|
|
"reporterStats": {
|
|
"suites": 1,
|
|
"tests": 1,
|
|
"passes": 1,
|
|
"pending": 0,
|
|
"failures": 0,
|
|
"start": "2018-02-01T20:14:19.323Z",
|
|
"end": "2018-02-01T20:14:19.323Z",
|
|
"duration": 1234
|
|
},
|
|
"hooks": [
|
|
{
|
|
"hookName": "before each",
|
|
"title": [
|
|
"\"before each\" hook"
|
|
],
|
|
"body": "() => {\n cy.wait(1000);\n }"
|
|
}
|
|
],
|
|
"tests": [
|
|
{
|
|
"title": [
|
|
"simple passing spec",
|
|
"passes"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {\n cy.wrap(true).should('be.true');\n }",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"error": null,
|
|
"video": null,
|
|
"spec": {
|
|
"fileExtension": ".js",
|
|
"baseName": "simple_passing.cy.js",
|
|
"fileName": "simple_passing",
|
|
"specFileExtension": ".cy.js",
|
|
"relativeToCommonRoot": "simple_passing.cy.js",
|
|
"specType": "integration",
|
|
"name": "cypress/e2e/simple_passing.cy.js",
|
|
"relative": "cypress/e2e/simple_passing.cy.js",
|
|
"absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_passing.cy.js"
|
|
},
|
|
"shouldUploadVideo": true
|
|
},
|
|
{
|
|
"stats": {
|
|
"suites": 1,
|
|
"tests": 3,
|
|
"passes": 3,
|
|
"pending": 0,
|
|
"skipped": 0,
|
|
"failures": 0,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"endedAt": "2018-02-01T20:14:19.323Z"
|
|
},
|
|
"reporter": "spec",
|
|
"reporterStats": {
|
|
"suites": 1,
|
|
"tests": 3,
|
|
"passes": 3,
|
|
"pending": 0,
|
|
"failures": 0,
|
|
"start": "2018-02-01T20:14:19.323Z",
|
|
"end": "2018-02-01T20:14:19.323Z",
|
|
"duration": 1234
|
|
},
|
|
"hooks": [
|
|
{
|
|
"hookName": "before all",
|
|
"title": [
|
|
"\"before all\" hook"
|
|
],
|
|
"body": "() => {\n cy.wait(100);\n }"
|
|
},
|
|
{
|
|
"hookName": "before each",
|
|
"title": [
|
|
"\"before each\" hook"
|
|
],
|
|
"body": "() => {\n cy.wait(200);\n }"
|
|
},
|
|
{
|
|
"hookName": "after each",
|
|
"title": [
|
|
"\"after each\" hook"
|
|
],
|
|
"body": "() => {\n cy.wait(200);\n }"
|
|
},
|
|
{
|
|
"hookName": "after all",
|
|
"title": [
|
|
"\"after all\" hook"
|
|
],
|
|
"body": "() => {\n cy.wait(100);\n }"
|
|
}
|
|
],
|
|
"tests": [
|
|
{
|
|
"title": [
|
|
"simple hooks spec",
|
|
"t1"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {\n cy.wrap('t1').should('eq', 't1');\n }",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple hooks spec",
|
|
"t2"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {\n cy.wrap('t2').should('eq', 't2');\n }",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple hooks spec",
|
|
"t3"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {\n cy.wrap('t3').should('eq', 't3');\n }",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"error": null,
|
|
"video": null,
|
|
"spec": {
|
|
"fileExtension": ".js",
|
|
"baseName": "simple_hooks.cy.js",
|
|
"fileName": "simple_hooks",
|
|
"specFileExtension": ".cy.js",
|
|
"relativeToCommonRoot": "simple_hooks.cy.js",
|
|
"specType": "integration",
|
|
"name": "cypress/e2e/simple_hooks.cy.js",
|
|
"relative": "cypress/e2e/simple_hooks.cy.js",
|
|
"absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_hooks.cy.js"
|
|
},
|
|
"shouldUploadVideo": true
|
|
},
|
|
{
|
|
"stats": {
|
|
"suites": 1,
|
|
"tests": 2,
|
|
"passes": 0,
|
|
"pending": 0,
|
|
"skipped": 0,
|
|
"failures": 2,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"endedAt": "2018-02-01T20:14:19.323Z"
|
|
},
|
|
"reporter": "spec",
|
|
"reporterStats": {
|
|
"suites": 1,
|
|
"tests": 2,
|
|
"passes": 0,
|
|
"pending": 0,
|
|
"failures": 2,
|
|
"start": "2018-02-01T20:14:19.323Z",
|
|
"end": "2018-02-01T20:14:19.323Z",
|
|
"duration": 1234
|
|
},
|
|
"hooks": [],
|
|
"tests": [
|
|
{
|
|
"title": [
|
|
"simple failing spec",
|
|
"fails1"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {\n cy.wrap(true, {\n timeout: 100\n }).should('be.false');\n }",
|
|
"displayError": "AssertionError: Timed out retrying after 100ms: expected true to be false\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "AssertionError",
|
|
"message": "Timed out retrying after 100ms: expected true to be false",
|
|
"stack": "[stack trace lines]"
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing.cy.js/simple failing spec -- fails1 (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing spec",
|
|
"fails2"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {\n throw new Error('fails2');\n }",
|
|
"displayError": "Error: fails2\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fails2",
|
|
"stack": "[stack trace lines]"
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing.cy.js/simple failing spec -- fails2 (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"error": null,
|
|
"video": null,
|
|
"spec": {
|
|
"fileExtension": ".js",
|
|
"baseName": "simple_failing.cy.js",
|
|
"fileName": "simple_failing",
|
|
"specFileExtension": ".cy.js",
|
|
"relativeToCommonRoot": "simple_failing.cy.js",
|
|
"specType": "integration",
|
|
"name": "cypress/e2e/simple_failing.cy.js",
|
|
"relative": "cypress/e2e/simple_failing.cy.js",
|
|
"absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing.cy.js"
|
|
},
|
|
"shouldUploadVideo": true
|
|
},
|
|
{
|
|
"stats": {
|
|
"suites": 5,
|
|
"tests": 6,
|
|
"passes": 1,
|
|
"pending": 1,
|
|
"skipped": 1,
|
|
"failures": 3,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"endedAt": "2018-02-01T20:14:19.323Z"
|
|
},
|
|
"reporter": "spec",
|
|
"reporterStats": {
|
|
"suites": 5,
|
|
"tests": 5,
|
|
"passes": 1,
|
|
"pending": 1,
|
|
"failures": 3,
|
|
"start": "2018-02-01T20:14:19.323Z",
|
|
"end": "2018-02-01T20:14:19.323Z",
|
|
"duration": 1234
|
|
},
|
|
"hooks": [
|
|
{
|
|
"hookName": "before each",
|
|
"title": [
|
|
"\"before each\" hook"
|
|
],
|
|
"body": "() => {\n throw new Error('fail1');\n }"
|
|
},
|
|
{
|
|
"hookName": "after each",
|
|
"title": [
|
|
"\"after each\" hook"
|
|
],
|
|
"body": "() => {\n throw new Error('fail2');\n }"
|
|
},
|
|
{
|
|
"hookName": "after all",
|
|
"title": [
|
|
"\"after all\" hook"
|
|
],
|
|
"body": "() => {\n throw new Error('fail3');\n }"
|
|
}
|
|
],
|
|
"tests": [
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"beforeEach hooks",
|
|
"never gets here"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {}",
|
|
"displayError": "Error: fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail1\n\nBecause this error occurred during a `before each` hook we are skipping the remaining tests in the current suite: `beforeEach hooks`",
|
|
"stack": "[stack trace lines]"
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- beforeEach hooks -- never gets here -- before each hook (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"pending",
|
|
"is pending"
|
|
],
|
|
"state": "pending",
|
|
"body": "",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "pending",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": null,
|
|
"startedAt": null,
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"afterEach hooks",
|
|
"runs this"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {}",
|
|
"displayError": "Error: fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail2\n\nBecause this error occurred during a `after each` hook we are skipping the remaining tests in the current suite: `afterEach hooks`",
|
|
"stack": "[stack trace lines]"
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- afterEach hooks -- runs this -- after each hook (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"afterEach hooks",
|
|
"does not run this"
|
|
],
|
|
"state": "skipped",
|
|
"body": "() => {}",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "skipped",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": null,
|
|
"startedAt": null,
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"after hooks",
|
|
"runs this"
|
|
],
|
|
"state": "passed",
|
|
"body": "() => {}",
|
|
"displayError": null,
|
|
"attempts": [
|
|
{
|
|
"state": "passed",
|
|
"error": null,
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"title": [
|
|
"simple failing hook spec",
|
|
"after hooks",
|
|
"fails on this"
|
|
],
|
|
"state": "failed",
|
|
"body": "() => {}",
|
|
"displayError": "Error: fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`\n [stack trace lines]",
|
|
"attempts": [
|
|
{
|
|
"state": "failed",
|
|
"error": {
|
|
"name": "Error",
|
|
"message": "fail3\n\nBecause this error occurred during a `after all` hook we are skipping the remaining tests in the current suite: `after hooks`",
|
|
"stack": "[stack trace lines]"
|
|
},
|
|
"videoTimestamp": null,
|
|
"duration": 1234,
|
|
"startedAt": "2018-02-01T20:14:19.323Z",
|
|
"screenshots": [
|
|
{
|
|
"name": null,
|
|
"takenAt": "2018-02-01T20:14:19.323Z",
|
|
"path": "/foo/bar/.projects/e2e/cypress/screenshots/simple_failing_hook.cy.js/simple failing hook spec -- after hooks -- fails on this -- after all hook (failed).png",
|
|
"height": 720,
|
|
"width": 1280
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"error": null,
|
|
"video": null,
|
|
"spec": {
|
|
"fileExtension": ".js",
|
|
"baseName": "simple_failing_hook.cy.js",
|
|
"fileName": "simple_failing_hook",
|
|
"specFileExtension": ".cy.js",
|
|
"relativeToCommonRoot": "simple_failing_hook.cy.js",
|
|
"specType": "integration",
|
|
"name": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"relative": "cypress/e2e/simple_failing_hook.cy.js",
|
|
"absolute": "/foo/bar/.projects/e2e/cypress/e2e/simple_failing_hook.cy.js"
|
|
},
|
|
"shouldUploadVideo": true
|
|
}
|
|
],
|
|
"browserPath": "path/to/browser",
|
|
"browserName": "FooBrowser",
|
|
"browserVersion": "88",
|
|
"osName": "FooOS",
|
|
"osVersion": "1234",
|
|
"cypressVersion": "9.9.9",
|
|
"config": {}
|
|
}
|