wdio-performancetotal-service
Version:
WebdriverIO service for analyzing test flow performance
47 lines (46 loc) • 2.1 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const performance_total_1 = __importDefault(require("./performance-total"));
var Status;
(function (Status) {
Status[Status["UNKNOWN"] = 0] = "UNKNOWN";
Status[Status["PASSED"] = 1] = "PASSED";
Status[Status["SKIPPED"] = 2] = "SKIPPED";
Status[Status["PENDING"] = 3] = "PENDING";
Status[Status["UNDEFINED"] = 4] = "UNDEFINED";
Status[Status["AMBIGUOUS"] = 5] = "AMBIGUOUS";
Status[Status["FAILED"] = 6] = "FAILED";
})(Status || (Status = {}));
class PerformanceTotalService {
/**
* `serviceOptions` contains all options specific to the service
* e.g. if defined as follows:
*
* ```
* services: [['custom', { foo: 'bar' }]]
* ```
*
* the `serviceOptions` parameter will be: `{ foo: 'bar' }`
*/
constructor(serviceOptions, capabilities, config) {
this._serviceOptions = serviceOptions;
}
async before(config, capabilities, browser) {
this._browser = browser;
await performance_total_1.default.initialize(this._serviceOptions.disableAppendToExistingFile, this._serviceOptions.performanceResultsDirectory);
}
//@ts-ignore
async afterTest(test, context, { error, result, duration, passed, retries }) {
await performance_total_1.default.finalizeTest(this._browser, passed);
}
async afterScenario(test, context) {
await performance_total_1.default.finalizeTest(this._browser, test.result.status == Status.PASSED);
}
async after(exitCode, config, capabilities) {
await performance_total_1.default.analyzeResults({ performanceResultsFileName: this._serviceOptions.performanceResultsFileName, dropResultsFromFailedTest: this._serviceOptions.dropResultsFromFailedTest, analyzeByBrowser: this._serviceOptions.analyzeByBrowser, recentDays: this._serviceOptions.recentDays });
}
}
exports.default = PerformanceTotalService;