read which testfiles to run from CLI

This commit is contained in:
Lukas Eipert 2018-04-10 11:12:24 +02:00
parent 8e66411488
commit 35d754f6e5
No known key found for this signature in database
GPG key ID: 148BEA37CB35B2AC
2 changed files with 15 additions and 8 deletions

View file

@ -16,9 +16,14 @@ if (webpackConfig.plugins) {
webpackConfig.plugins = [];
}
var ignoreUpTo = process.argv.indexOf('config/karma.config.js') + 1;
var testFiles = process.argv.slice(ignoreUpTo).filter(arg => {
return !arg.startsWith('--');
});
webpackConfig.plugins.push(
new webpack.DefinePlugin({
TEST_FILE: JSON.stringify(process.env.TEST_FILE),
TEST_FILES: JSON.stringify(testFiles),
})
);

View file

@ -70,20 +70,22 @@ beforeEach(() => {
});
// eslint-disable-next-line no-undef
let testFile = TEST_FILE;
if (testFile) {
console.log(`Running only ${testFile}`);
testFile = testFile.replace(/^spec\/javascripts\//, '');
testFile = testFile.replace(/\.js$/, '');
let testFile = TEST_FILES;
if (testFile instanceof Array && testFile.length > 0) {
console.log(`Running only tests: ${testFile}`);
testFile = testFile.map(path => path.replace(/^spec\/javascripts\//, '').replace(/\.js$/, ''));
} else {
console.log('Running all tests');
testFile = [];
}
const axiosDefaultAdapter = getDefaultAdapter();
// render all of our tests
const testsContext = require.context('.', true, /_spec$/);
testsContext.keys().forEach(function (path) {
testsContext.keys().forEach(function(path) {
try {
if (!testFile || path.indexOf(testFile) > -1) {
if (testFile.length === 0 || testFile.some(p => path.includes(p))) {
testsContext(path);
}
} catch (err) {