1 | "use strict";
|
2 |
|
3 | const utils = require('../utils');
|
4 | const config = require('../commons/config');
|
5 | const testimCustomToken = require('../commons/testimCustomToken');
|
6 | const BaseRunner = require('./BaseRunner');
|
7 | const TestRunStatus = require('../testRunStatus');
|
8 | const reporter = require("../reports/reporter");
|
9 | const guid = require('../utils').guid;
|
10 | const Logger = require('../commons/logger');
|
11 | const logger = Logger.getLogger('remote-test-runner');
|
12 |
|
13 | class SchedulerRemoteRunner extends BaseRunner {
|
14 | runExecution(testList, testStatus, executionId, options, branchToUse) {
|
15 | const sessionType = utils.getSessionType(options);
|
16 | const projectId = options.project;
|
17 |
|
18 | const authData = testimCustomToken.getTokenV3UserData();
|
19 | this.analyticsExecsStart({authData, executionId, projectId, sessionType});
|
20 | const workerCount = config.TESTIM_CONCURRENT_WORKER_COUNT || options.parallel;
|
21 |
|
22 | return this.strategy.runTests(testList, testStatus, executionId, options, branchToUse, authData, workerCount);
|
23 | }
|
24 |
|
25 | runTest(options, branchToUse) {
|
26 | const executionId = options.executionId || guid();
|
27 | const test = options.testObject;
|
28 | Logger.setExecutionId(executionId);
|
29 |
|
30 | logger.info("start to run test", {
|
31 | executionId: executionId,
|
32 | options: Object.assign({}, options, {token: undefined}),
|
33 | branchToUse: branchToUse,
|
34 | test: test
|
35 | });
|
36 |
|
37 | const testArray = [test];
|
38 | const testPlanName = options.overrideExecutionName || "remote run";
|
39 | const testStatus = new TestRunStatus(testArray, options, branchToUse);
|
40 | reporter.onTestPlanStarted([], testArray, [], testPlanName, executionId);
|
41 | return this.runExecution(testArray, testStatus, executionId, options, branchToUse)
|
42 | .tap(results => reporter.onTestPlanFinished(results, testPlanName, this.startTime, executionId))
|
43 | .then(combinedTestResults => combinedTestResults);
|
44 | }
|
45 | }
|
46 |
|
47 | module.exports = SchedulerRemoteRunner;
|