@testim/testim-cli 3.219.0 → 3.223.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@testim/testim-cli",
3
- "version": "3.219.0",
3
+ "version": "3.223.0",
4
4
  "description": "Command line interface for running Testing on your CI",
5
5
  "author": "Oren Rubin",
6
6
  "contributors": [{
@@ -27,7 +27,7 @@
27
27
  "mocha": "9.2.0",
28
28
  "nyc": "15.1.0",
29
29
  "proxyquire": "2.1.3",
30
- "request": "2.88.0",
30
+ "request": "2.88.2",
31
31
  "sinon": "9.0.2",
32
32
  "sinon-chai": "3.7.0",
33
33
  "ts-node": "9.1.1",
@@ -47,9 +47,9 @@
47
47
  "multer": "1.4.2"
48
48
  },
49
49
  "dependencies": {
50
- "@applitools/eyes-sdk-core": "12.23.12",
51
- "@applitools/visual-grid-client": "15.8.31",
52
- "@testim/coralogix-logger": "1.1.27-beta",
50
+ "@applitools/eyes-sdk-core": "13.0.0",
51
+ "@applitools/visual-grid-client": "15.8.62",
52
+ "@testim/coralogix-logger": "1.1.27-beta.1",
53
53
  "@testim/webdriverio": "0.0.5",
54
54
  "abort-controller": "3.0.0",
55
55
  "ajv": "6.12.6",
@@ -76,6 +76,7 @@ class WebdriverioWebDriverApi {
76
76
  perf.log('right before addToQueue');
77
77
  const perfId = this.seleniumPerfStats.markStart(SELENIUM_PERF_MARKS.GET_BROWSER);
78
78
  return this.addToQueue(() => {
79
+ logger.info('requesting browser', { testResultId, testName });
79
80
  perf.log('before this.client.init');
80
81
  return this.client.init();
81
82
  })
@@ -31,7 +31,7 @@ class PixelValidationStepAction extends StepAction {
31
31
  logger.error('Applitools SDK step failed', { err, info: err.info });
32
32
  result = { isApplitoolsSdkResult: true, success: false, err };
33
33
  }
34
- return await eyeSdkService.handleApplitoolsSdkResult(this.context, result);
34
+ return await eyeSdkService.handleApplitoolsSdkResult(this.context, result, this.step);
35
35
  }
36
36
  }
37
37
 
package/runOptions.js CHANGED
@@ -158,16 +158,16 @@ program
158
158
  .option('-o --options-file [options-file.json]', '')
159
159
  .option('-c --config-file [config-file.js]', '')
160
160
  .option('--test-config [test-config]', 'test config name to override for all tests in current execution', collect, [])
161
- .option('--test-config-id [test-config-id]', 'test config id to override for all tests in current execution', collect, [])
161
+ .option('--test-config-id [test-config-id]', 'test config ID to override for all tests in current execution', collect, [])
162
162
  .option('--params-file [params-file.json]', '')
163
163
  .option('--params [params-json-string]', '')
164
- .option('-t, --testId [test-id]', 'test id to run', collect, [])
164
+ .option('-t, --testId [test-id]', 'test ID to run', collect, [])
165
165
  .option('run [file-glob-pattern]', 'codeful test files to run', collect, [])
166
166
  .option('-w, --webpackConfig [webpack-configuration]', 'webpack configuration used to build the code based project')
167
- .option('--test-id [test-id]', 'test id to run', collect, [])
167
+ .option('--test-id [test-id]', 'test ID to run', collect, [])
168
168
  .option('-l, --label [label]', 'labels to search test by', collect, [])
169
169
  .option('-n, --name [test-name]', 'test name to run', collect, [])
170
- .option('--project [project-id]', 'project id')
170
+ .option('--project [project-id]', 'project ID')
171
171
  .option('-r, --report-file [report junit xml path]', 'where to save junit xml results file')
172
172
  .option('--override-report-file-classname [override-report-file-classname]', 'custom junit class name for the junit reporter')
173
173
  .option('--reporters [names]', 'report types', list)
@@ -178,7 +178,7 @@ program
178
178
  .option('--protocol [grid-protocol]', 'grid protocol http or https')
179
179
  .option('--grid-username [grid-username]', 'grid http basic auth username')
180
180
  .option('--grid-password [grid-password]', 'grid http basic auth password')
181
- .option('-gi --grid-id [grid-id]', 'grid id')
181
+ .option('-gi --grid-id [grid-id]', 'grid ID')
182
182
  .option('-b, --browser [browser-type]', 'browser type (chrome/firefox)')
183
183
  .option('-h, --headless [headless]', 'run in headless mode')
184
184
  .option('-m, --mode [runner-mode]', 'use extension or selenium mode (extension/selenium/appium)')
@@ -191,7 +191,7 @@ program
191
191
  .option('--test-plan [test-plan-name]', 'test plan to run', collect, [])
192
192
  .option('--test-plan-id [test-plan-id]', 'test plan to run', collect, [])
193
193
  .option('--suite [suite-name]', 'suite to run', collect, [])
194
- .option('--suite-id [suite-id]', 'suite id to run', collect, [])
194
+ .option('--suite-id [suite-id]', 'suite ID to run', collect, [])
195
195
  .option('--rerun-failed-by-run-id [run-id]', 'allows re-running failed tests from a specific run ID')
196
196
  .option('--disable-grid-check [boolean]', 'disable checking if selenium grid is available', false)
197
197
  .option('--disable-native-events [boolean]', 'pass nativeEvents=false capability to the selenium browser (in selenium mode)', false)
@@ -203,7 +203,7 @@ program
203
203
  .option('-oen --override-execution-name [execution-name]', 'override the default execution name', '')
204
204
  .option('--retries [max_num_of_retries]', 'number of retires failure test defaults to not retrying', 0)
205
205
  .option('--set-retention [retention-in-days]', 'set the number of days for results retention')
206
- .option('--user [user-id]', 'user id for local Testim-CLI')
206
+ .option('--user [user-id]', 'user ID for local Testim-CLI')
207
207
  .option('--pass-zero-tests', 'don\'t fail the run if no tests were found')
208
208
 
209
209
  .option('-str --suppress-tms-reporting [suppress-tms-reporting]', 'disable test management reporting', false)
@@ -301,7 +301,7 @@ program
301
301
  .option('--tunnel-region [tunnel-region]', 'ngrok tunnel region')
302
302
  .option('--tunnel-diagnostics', 'collect ngrok tunnel diagnostics')
303
303
  .option('--tunnel-use-http-address [tunnel-use-http-address]', 'use http:// address instead of https://', false)
304
- .option('--external-lambdatest-tunnel-id [tunnel-id]', 'use existing lambdatest tunnel id')
304
+ .option('--external-lambdatest-tunnel-id [tunnel-id]', 'use existing lambdatest tunnel ID')
305
305
  .option('--external-lambdatest-use-wss', 'use wss instead of ssh for LT', false)
306
306
  .option('--external-lambdatest-disable-automation-tunneling', 'don\'t tunnel Testim calls in LT tunnel', true)
307
307
 
@@ -337,13 +337,18 @@ program
337
337
  .option('--high-speed', 'DEPRECATED: use --turbo-mode instead') // When removing, remove from the program.help output filter
338
338
  .option('--turbo-mode', 'run in turbo mode')
339
339
  .option('--lightweight-mode [settings]', 'run lightweight mode')
340
- .option('--create-prefeched-data [location]', 'prefech data into local cache file')
341
- .option('--use-prefeched-data [location]', 'use prefeched data from local cache file, and force using only cached data')
340
+ .option('--create-prefeched-data [location]', 'prefetch data into local cache file')
341
+ .option('--use-prefeched-data [location]', 'use prefetched data from local cache file, and force using only cached data')
342
342
  .option('--save-rca-locally [path]', 'save root cause analysis assets locally')
343
343
 
344
344
  .option('--exit-code-ignore-failing-tests', 'dont return non zero exit code when tests fail. non zero exit code will mean a real error occurred')
345
+
346
+ .option('--intersect-with-label [label]', 'Out of the execution\'s test list, run only those tests that have the specified label', collect, [])
347
+ .option('--intersect-with-suite [suiteName]', 'Out of the execution\'s test list, run only those tests that are included in the specified suite (by suite name)', collect, [])
348
+ .option('--intersect-with-suite-id [suiteId]', 'Out of the execution\'s test list, run only those tests that are included in the specified suite (by suite ID)', collect, [])
345
349
  .parse(process.argv);
346
350
 
351
+
347
352
  module.exports = {
348
353
  async process() {
349
354
  if (program.inspect) {
@@ -1179,6 +1184,13 @@ module.exports = {
1179
1184
  exitCodeIgnoreFailingTests: program.exitCodeIgnoreFailingTests,
1180
1185
 
1181
1186
  disableSockets: program.disableSockets,
1187
+
1188
+ // intersections
1189
+ intersections: {
1190
+ labels: program.intersectWithLabel.length ? [program.intersectWithLabel].flat() : undefined,
1191
+ suiteNames: program.intersectWithSuite.length ? [program.intersectWithSuite].flat() : undefined,
1192
+ suiteIds: program.intersectWithSuiteId.length ? [program.intersectWithSuiteId].flat() : undefined,
1193
+ },
1182
1194
  });
1183
1195
  },
1184
1196
  };
@@ -230,7 +230,7 @@ class TestPlanRunner {
230
230
  const testPlansTests = {};
231
231
  const projectId = options.project;
232
232
 
233
- const data = await testimServicesApi.getTestPlanTestList(projectId, options.testPlan, options.testPlanIds, branchToUse);
233
+ const data = await testimServicesApi.getTestPlanTestList(projectId, options.testPlan, options.testPlanIds, branchToUse, options.intersections);
234
234
  const testPlans = data.testPlans;
235
235
  const testPlansData = data.testPlansData;
236
236
  if (!testPlans || testPlans.length === 0) {
@@ -35,6 +35,7 @@ async function getSuite(options, branchToUse) {
35
35
  branch: branchToUse,
36
36
  rerunFailedByRunId: options.rerunFailedByRunId,
37
37
  testConfigIds: options.testConfigIds,
38
+ intersections: options.intersections,
38
39
  });
39
40
  }
40
41
 
package/testRunStatus.js CHANGED
@@ -397,6 +397,7 @@ RunStatus.prototype.executionStart = function (executionId, projectId, startTime
397
397
  remoteRunId: options.remoteRunId,
398
398
  localRunUserId: options.user,
399
399
  isLocalRun,
400
+ intersections: options.intersections,
400
401
  };
401
402
  const ret = servicesApi.reportExecutionStarted(data);
402
403
  this.executionStartedPromise = ret;