From 02d62f9be7001a813953888547a05a8d1265ae58 Mon Sep 17 00:00:00 2001 From: Dimitar Todorov Date: Tue, 19 Feb 2019 15:12:53 +0200 Subject: [PATCH] Update dev appium and test reports --- demo-vue/e2e/config/mocha.opts | 2 ++ demo-vue/e2e/test.e2e.ts | 22 +++++++++++++++++++++- demo-vue/package.json | 7 +++++-- demo/e2e/config/mocha.opts | 2 ++ demo/e2e/test.e2e.ts | 21 +++++++++++++++++++++ demo/package.json | 7 +++++-- 6 files changed, 56 insertions(+), 5 deletions(-) diff --git a/demo-vue/e2e/config/mocha.opts b/demo-vue/e2e/config/mocha.opts index 308e22f..d7d26a6 100644 --- a/demo-vue/e2e/config/mocha.opts +++ b/demo-vue/e2e/config/mocha.opts @@ -1,3 +1,5 @@ --timeout 800000 --recursive e2e +--reporter mocha-multi +--reporter-options mochawesome=-,mocha-junit-reporter=test-results.xml --exit \ No newline at end of file diff --git a/demo-vue/e2e/test.e2e.ts b/demo-vue/e2e/test.e2e.ts index 9644b24..5f5877f 100644 --- a/demo-vue/e2e/test.e2e.ts +++ b/demo-vue/e2e/test.e2e.ts @@ -6,7 +6,9 @@ import { import { isSauceLab, runType } from "nativescript-dev-appium/lib/parser"; import { expect } from "chai"; import "mocha"; - +const fs = require('fs'); +const addContext = require('mochawesome/addContext'); +const rimraf = require('rimraf'); const isSauceRun = isSauceLab; const isAndroid: boolean = runType.includes("android"); @@ -21,6 +23,11 @@ describe("Facebook tests", async function () { before(async () => { driver = await createDriver(); driver.defaultWaitTime = 20000; + let dir = "mochawesome-report"; + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir); + } + rimraf('mochawesome-report/*', function () { }); }); after(async () => { @@ -33,6 +40,19 @@ describe("Facebook tests", async function () { console.log("Driver successfully quit"); }); + afterEach(async function () { + if (this.currentTest.state && this.currentTest.state === "failed") { + let png = await driver.logScreenshot(this.currentTest.title); + fs.copyFile(png, './mochawesome-report/' + this.currentTest.title + '.png', function (err) { + if (err) { + throw err; + } + console.log('Screenshot saved.'); + }); + addContext(this, './' + this.currentTest.title + '.png'); + } + }); + it("should log in via custom button", async function () { if (isAndroid) { var userNameLabelElement = "Nativescript User"; diff --git a/demo-vue/package.json b/demo-vue/package.json index b7b0e0a..19a6d2d 100644 --- a/demo-vue/package.json +++ b/demo-vue/package.json @@ -28,8 +28,11 @@ "chai-as-promised": "~7.1.1", "karma": "^2.0.2", "karma-nativescript-launcher": "^0.4.0", - "mocha": "~5.2.0", - "nativescript-dev-appium": "^4.0.9", + "mocha": "^3.3.0", + "mocha-junit-reporter": "^1.18.0", + "mocha-multi": "^1.0.1", + "mochawesome": "^3.1.1", + "nativescript-dev-appium": "5.0.0", "nativescript-dev-typescript": "~0.8.0", "nativescript-dev-webpack": "~0.20.0", "nativescript-vue-template-compiler": "~2.0.2", diff --git a/demo/e2e/config/mocha.opts b/demo/e2e/config/mocha.opts index 308e22f..d7d26a6 100644 --- a/demo/e2e/config/mocha.opts +++ b/demo/e2e/config/mocha.opts @@ -1,3 +1,5 @@ --timeout 800000 --recursive e2e +--reporter mocha-multi +--reporter-options mochawesome=-,mocha-junit-reporter=test-results.xml --exit \ No newline at end of file diff --git a/demo/e2e/test.e2e.ts b/demo/e2e/test.e2e.ts index 3b47078..ed926b2 100644 --- a/demo/e2e/test.e2e.ts +++ b/demo/e2e/test.e2e.ts @@ -6,6 +6,9 @@ import { import { isSauceLab, runType } from "nativescript-dev-appium/lib/parser"; import { expect } from "chai"; import "mocha"; +const fs = require('fs'); +const addContext = require('mochawesome/addContext'); +const rimraf = require('rimraf'); const isSauceRun = isSauceLab; const isAndroid: boolean = runType.includes("android"); @@ -21,6 +24,11 @@ describe("Facebook tests", async function () { before(async () => { driver = await createDriver(); driver.defaultWaitTime = 20000; + let dir = "mochawesome-report"; + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir); + } + rimraf('mochawesome-report/*', function () { }); }); after(async () => { @@ -33,6 +41,19 @@ describe("Facebook tests", async function () { console.log("Driver successfully quit"); }); + afterEach(async function (){ + if (this.currentTest.state && this.currentTest.state === "failed") { + let png = await driver.logScreenshot(this.currentTest.title); + fs.copyFile(png, './mochawesome-report/' + this.currentTest.title + '.png', function (err) { + if (err) { + throw err; + } + console.log('Screenshot saved.'); + }); + addContext(this, './' + this.currentTest.title + '.png'); + } + }) + it("should log in via custom button", async function () { if (isAndroid) { var userNameLabelElement = "[@text='Nativescript User']"; diff --git a/demo/package.json b/demo/package.json index a68f944..45ae559 100644 --- a/demo/package.json +++ b/demo/package.json @@ -21,9 +21,12 @@ "karma": "^2.0.2", "karma-jasmine": "^1.1.2", "karma-nativescript-launcher": "^0.4.0", - "mocha": "~5.2.0", + "mocha": "^3.3.0", + "mocha-junit-reporter": "^1.18.0", + "mocha-multi": "^1.0.1", + "mochawesome": "^3.1.1", "nativescript-css-loader": "~0.26.1", - "nativescript-dev-appium": "4.0.9", + "nativescript-dev-appium": "5.0.0", "nativescript-dev-typescript": "~0.8.0", "nativescript-dev-webpack": "~0.20.0", "tslint": "~5.11.0",