-
Notifications
You must be signed in to change notification settings - Fork 160
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
addContext in before & after hooks add context in tests instead of beforeHook & afterHook #284
Comments
scenaristeur
changed the title
addContext in after hook
addContext in before & after hooks add context in tests instead of beforeHook & afterHook
Jun 13, 2019
scenaristeur
added a commit
to scenaristeur/mochawesome
that referenced
this issue
Jun 13, 2019
Proposition for adamgruber#284 expected : - addContext in 'before' hook --> add the context in results.suites[0].beforeHooks[0] - addContext in 'after' hook --> add the context in results.suites[0].afterHooks[0] - addContext in 'afterEach' and 'beforeEach' hooks --> add the context to each test But in addContext module, it's difficult to know if we are in a before/after or in a beaforeEach/afterEach, so the only way I found is to add a third parameter, which indicates if the context must be added in global (beforeHooks & afterHooks) instead of in the firs or last test here is an example of use : ``` describe('Context', async function() { this.timeout(120000); var count = 0; it('Open Spoggy', async function() { step = this.test.title; await driver.get('https://scenaristeur.github.io/spoggy-simple/'); await driver.wait(until.titleIs('Spoggy'), 10000); const title1 = await driver.getTitle(); expect(title1).to.equal("Spoggy"); }); it('test 1', async function() { console.log("test 1") }); it('test 2', async function() { console.log("test 2") }); it('test 3', async function() { addContext(this, 'some context in 3'); console.log("test 3") }); it('test 4', async function() { console.log("test 4") }); before('avant', function () { addContext(this, 'some context before',true); }); beforeEach('avant chaque', async function () { addContext(this, 'some context before each'); }); afterEach('après chaque', async function () { addContext(this, 'some context after each'); }); after('après', async function() { addContext(this, 'some context after',true); }); }); ``` that gives me : ``` Context true ' currentTest : ' 'Open Spoggy' ' test : ' '"before all" hook: avant' '-> context in : ' '"before all" hook: avant' false ' currentTest : ' 'Open Spoggy' ' test : ' '"before each" hook: avant chaque' '-> context in : ' 'Open Spoggy' ✓ Open Spoggy (7415ms) false ' currentTest : ' 'Open Spoggy' ' test : ' '"after each" hook: après chaque' '-> context in : ' 'Open Spoggy' false ' currentTest : ' 'test 1' ' test : ' '"before each" hook: avant chaque' '-> context in : ' 'test 1' test 1 ✓ test 1 false ' currentTest : ' 'test 1' ' test : ' '"after each" hook: après chaque' '-> context in : ' 'test 1' false ' currentTest : ' 'test 2' ' test : ' '"before each" hook: avant chaque' '-> context in : ' 'test 2' test 2 ✓ test 2 false ' currentTest : ' 'test 2' ' test : ' '"after each" hook: après chaque' '-> context in : ' 'test 2' false ' currentTest : ' 'test 3' ' test : ' '"before each" hook: avant chaque' '-> context in : ' 'test 3' false ' currentTest : ' 'no currentTest var ' ' test : ' 'test 3' '-> context in : ' 'test 3' test 3 ✓ test 3 false ' currentTest : ' 'test 3' ' test : ' '"after each" hook: après chaque' '-> context in : ' 'test 3' false ' currentTest : ' 'test 4' ' test : ' '"before each" hook: avant chaque' '-> context in : ' 'test 4' test 4 ✓ test 4 false ' currentTest : ' 'test 4' ' test : ' '"after each" hook: après chaque' '-> context in : ' 'test 4' true ' currentTest : ' 'test 4' ' test : ' '"after all" hook: après' '-> context in : ' '"after all" hook: après' ``` ``` before('avant', function () { addContext(this, 'some context before',true); }); beforeEach('avant chaque', async function () { addContext(this, 'some context before each'); }); afterEach('après chaque', async function () { addContext(this, 'some context after each'); }); after('après', async function() { addContext(this, 'some context after',true); }); ``` and the json is as expected : ``` { "stats": { "suites": 1, "tests": 5, "passes": 5, "pending": 0, "failures": 0, "start": "2019-06-13T14:46:03.397Z", "end": "2019-06-13T14:46:10.844Z", "duration": 7447, "testsRegistered": 5, "passPercent": 100, "pendingPercent": 0, "other": 0, "hasOther": false, "skipped": 0, "hasSkipped": false }, "results": [ { "uuid": "f20af57e-738d-473b-93e5-dd94b0145fa3", "title": "", "fullFile": "", "file": "", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { "uuid": "179c7517-f0b5-4520-ac2a-0acb7f8ed6f6", "title": "Context", "fullFile": "/produits/wsimu5/simulateur/scenarios/testContext.js", "file": "/produits/wsimu5/simulateur/scenarios/testContext.js", => "beforeHooks": [ { "title": "\"before all\" hook: avant", "fullTitle": "Context \"before all\" hook: avant", "timedOut": false, "duration": 1, "state": null, "speed": null, "pass": false, "fail": false, "pending": false, => "context": "\"some context before\"", "code": "addContext(this, 'some context before',true);\n// count++;\n// addContext(this, { title:'counter', value:\"before : \"+count });", "err": {}, "uuid": "1ac94093-73c7-4520-806b-daa6c631b305", "parentUUID": "179c7517-f0b5-4520-ac2a-0acb7f8ed6f6", "isHook": true, "skipped": false }, { "title": "\"before each\" hook: avant chaque", "fullTitle": "Context \"before each\" hook: avant chaque", "timedOut": false, "duration": 1, "state": null, "speed": null, "pass": false, "fail": false, "pending": false, "context": null, "code": "addContext(this, 'some context before each');\n/* addContext(this, {\ntitle: 'beforeEach context',\nvalue: { b: 2 }\n });\n count++;\n addContext(this, { title:'counter', value:\"beforeEach : \"+count });*/", "err": {}, "uuid": "4516ed45-4c85-47be-9ba4-826a6fe5f3d3", "parentUUID": "179c7517-f0b5-4520-ac2a-0acb7f8ed6f6", "isHook": true, "skipped": false } ], => "afterHooks": [ { "title": "\"after all\" hook: après", "fullTitle": "Context \"after all\" hook: après", "timedOut": false, "duration": 0, "state": null, "speed": null, "pass": false, "fail": false, "pending": false, => "context": "\"some context after\"", "code": "addContext(this, 'some context after',true);\n/* count++;\naddContext(this, { title:'counter', value:\"after : \"+count });\n*/\n// addContext(this, { title:'config', value:\"after\" });\ndriver.quit();", "err": {}, "uuid": "9c8cc803-23ae-4fcd-b8c6-737d00ca276e", "parentUUID": "179c7517-f0b5-4520-ac2a-0acb7f8ed6f6", "isHook": true, "skipped": false }, { "title": "\"after each\" hook: après chaque", "fullTitle": "Context \"after each\" hook: après chaque", "timedOut": false, "duration": 0, "state": null, "speed": null, "pass": false, "fail": false, "pending": false, "context": null, "code": "addContext(this, 'some context after each');\n/* addContext(this, {\ntitle: 'afterEach context',\nvalue: { a: 1 }\n});\ncount++;\naddContext(this, { title:'counter', value:\"afterEach : \"+count });*/", "err": {}, "uuid": "230e0487-14c3-4c00-b18f-a470d0357195", "parentUUID": "179c7517-f0b5-4520-ac2a-0acb7f8ed6f6", "isHook": true, "skipped": false } ], "tests": [ { "title": "Open Spoggy", "fullTitle": "Context Open Spoggy", "timedOut": false, "duration": 7415, "state": "passed", "speed": "slow", "pass": true, "fail": false, "pending": false, => "context": "[\n \"some context before each\",\n \"some context after each\"\n]", "code": "step = this.test.title;\nawait driver.get('https://scenaristeur.github.io/spoggy-simple/');\nawait driver.wait(until.titleIs('Spoggy'), 10000);\nconst title1 = await driver.getTitle();\nexpect(title1).to.equal(\"Spoggy\");", "err": {}, "uuid": "3c7662d8-c055-420d-bf0f-b9f0fd132cf5", "parentUUID": "179c7517-f0b5-4520-ac2a-0acb7f8ed6f6", "isHook": false, "skipped": false }, { "title": "test 1", "fullTitle": "Context test 1", "timedOut": false, "duration": 1, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, => "context": "[\n \"some context before each\",\n \"some context after each\"\n]", "code": "console.log(\"test 1\")", "err": {}, "uuid": "25c038d5-c939-4e5f-9083-2bd808d80a3a", "parentUUID": "179c7517-f0b5-4520-ac2a-0acb7f8ed6f6", "isHook": false, "skipped": false }, { "title": "test 2", "fullTitle": "Context test 2", "timedOut": false, "duration": 0, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, => "context": "[\n \"some context before each\",\n \"some context after each\"\n]", "code": "console.log(\"test 2\")", "err": {}, "uuid": "c58ed9d0-2060-4f65-a348-41e0ba5011c5", "parentUUID": "179c7517-f0b5-4520-ac2a-0acb7f8ed6f6", "isHook": false, "skipped": false }, { "title": "test 3", "fullTitle": "Context test 3", "timedOut": false, "duration": 1, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, => "context": "[\n \"some context before each\",\n \"some context in 3\",\n \"some context after each\"\n]", "code": "addContext(this, 'some context in 3');\n// count++;\n// addContext(this, { title:'counter', value:\"counter in 3 : \"+count });\nconsole.log(\"test 3\")", "err": {}, "uuid": "c80968a0-04eb-4a3e-9e25-94c153df937a", "parentUUID": "179c7517-f0b5-4520-ac2a-0acb7f8ed6f6", "isHook": false, "skipped": false }, { "title": "test 4", "fullTitle": "Context test 4", "timedOut": false, "duration": 0, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, => "context": "[\n \"some context before each\",\n \"some context after each\"\n]", "code": "console.log(\"test 4\")", "err": {}, "uuid": "543751ac-0700-4871-ac33-fa72217b2169", "parentUUID": "179c7517-f0b5-4520-ac2a-0acb7f8ed6f6", "isHook": false, "skipped": false } ], "suites": [], "passes": [ "3c7662d8-c055-420d-bf0f-b9f0fd132cf5", "25c038d5-c939-4e5f-9083-2bd808d80a3a", "c58ed9d0-2060-4f65-a348-41e0ba5011c5", "c80968a0-04eb-4a3e-9e25-94c153df937a", "543751ac-0700-4871-ac33-fa72217b2169" ], "failures": [], "pending": [], "skipped": [], "duration": 7417, "root": false, "rootEmpty": false, "_timeout": 120000 } ], "passes": [], "failures": [], "pending": [], "skipped": [], "duration": 0, "root": true, "rootEmpty": true, "_timeout": 2000 } ], "meta": { "mocha": { "version": "6.1.4" }, "mochawesome": { "options": { "quiet": false, "reportFilename": "mochawesome", "saveHtml": true, "saveJson": true, "useInlineDiffs": false }, "version": "4.0.0" }, "marge": { "options": { "reportDir": "/var/lib/jenkins/workspace/testContext/mochawesome-report", "reportFilename": "mochawesome" }, "version": "4.0.0" } } } ```
Fixed by #286 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Some weeks ago, I could use 'addContext' in afterHook but for some unknown reason, this doesn't work anymore today : the context is added to the inner tests and not to the hook :
when I use just a "before" hook, the context is added to the first test instead of to the 'beforeHook':
this code :
gives me
When I add an "after" hook, the context is added to the last test instead of the "afterHook" in :
this gives me
Does anyone have the same problem or I am the only one ? thxs
David
The text was updated successfully, but these errors were encountered: