Skip to content

Commit 3db1d90

Browse files
Limiting the allocation of parallels w.r.t specs .
1 parent ac5c1f8 commit 3db1d90

File tree

5 files changed

+25
-5
lines changed

5 files changed

+25
-5
lines changed

bin/commands/runs.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,11 @@ module.exports = function run(args) {
4545
utils.setLocalIdentifier(bsConfig);
4646

4747
// Validate browserstack.json values and parallels specified via arguments
48-
return capabilityHelper.validate(bsConfig, args).then(function (validated) {
49-
logger.info(validated);
48+
return capabilityHelper.validate(bsConfig, args).then(function (cypressJson) {
49+
50+
//get the number of spec files
51+
let files = utils.getNumberOfSpecFiles(bsConfig,args,cypressJson);
52+
logger.info(files);
5053

5154
// accept the number of parallels
5255
utils.setParallels(bsConfig, args);

bin/helpers/capabilityHelper.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ const validate = (bsConfig, args) => {
123123
// validate if config file provided exists or not when cypress_config_file provided
124124
// validate the cypressProjectDir key otherwise.
125125
let cypressConfigFilePath = bsConfig.run_settings.cypressConfigFilePath;
126+
let cypressJson = {};
126127

127128
if (!fs.existsSync(cypressConfigFilePath) && bsConfig.run_settings.cypress_config_filename !== 'false') reject(Constants.validationMessages.INVALID_CYPRESS_CONFIG_FILE);
128129

@@ -141,7 +142,7 @@ const validate = (bsConfig, args) => {
141142
reject(Constants.validationMessages.INVALID_CYPRESS_JSON)
142143
}
143144

144-
resolve(Constants.validationMessages.VALIDATED);
145+
resolve(cypressJson);
145146
});
146147
}
147148

bin/helpers/constants.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,11 +91,17 @@ const allowedFileTypes = ['js', 'json', 'txt', 'ts', 'feature', 'features', 'pdf
9191

9292
const filesToIgnoreWhileUploading = ['node_modules/**', 'package-lock.json', 'package.json', 'browserstack-package.json', 'tests.zip', 'cypress.json']
9393

94+
const specFileTypes = ['js', 'ts', 'feature', 'jsx', 'coffee', 'cjsx']
95+
96+
const DEFAULT_CYPRESS_SPEC_PATH = "cypress/integration"
97+
9498
module.exports = Object.freeze({
9599
userMessages,
96100
cliMessages,
97101
validationMessages,
98102
messageTypes,
99103
allowedFileTypes,
100-
filesToIgnoreWhileUploading
104+
filesToIgnoreWhileUploading,
105+
specFileTypes,
106+
DEFAULT_CYPRESS_SPEC_PATH
101107
});

bin/helpers/utils.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
const os = require("os");
33
const path = require("path");
44
const fs = require("fs");
5+
const glob = require('glob');
56

67
const usageReporting = require("./usageReporting"),
78
logger = require("./logger").winstonLogger,
@@ -314,3 +315,11 @@ exports.setLocalIdentifier = (bsConfig) => {
314315
);
315316
}
316317
};
318+
319+
exports.getNumberOfSpecFiles = (bsConfig, args, cypressJson) => {
320+
let testFolderPath = cypressJson.integrationFolder || Constants.DEFAULT_CYPRESS_SPEC_PATH;
321+
let globSearchPatttern = bsConfig.run_settings.specs || `${testFolderPath}/**/*.+(${Constants.specFileTypes.join("|")})`;
322+
let ignoreFiles = args.exclude || bsConfig.run_settings.exclude;
323+
let files = glob.sync(globSearchPatttern, {cmd: bsConfig.run_settings.cypressConfigFilePath, matchBase: true, ignore: ignoreFiles});
324+
return files;
325+
};

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
"request": "^2.88.0",
1919
"requestretry": "^4.1.0",
2020
"winston": "^2.3.1",
21-
"yargs": "^14.2.2"
21+
"yargs": "^14.2.2",
22+
"glob": "^7.1.6"
2223
},
2324
"repository": {
2425
"type": "git",

0 commit comments

Comments
 (0)