Не удается выполнить тесты в строгом порядке.
package.json
{
"version": "0.0.1",
"description": "",
"main": "./src/main.ts",
"scripts": {
},
"devDependencies": {
"@types/jasmine": "^2.8.9",
"concurrently": "^4.0.1",
"jasmine": "^3.3.0",
"jasmine-core": "^3.3.0",
"jasmine-spec-reporter": "~4.2.1",
"jasmine-ts": "^0.3.0",
"karma": "^3.1.1",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.1",
"karma-jasmine": "~1.1.2",
"karma-jasmine-html-reporter": "^1.4.0",
"karma-sourcemap-loader": "^0.3.7",
"karma-typescript": "^3.0.13",
"karma-webpack": "^3.0.5",
"lite-server": "^2.4.0",
"source-map-loader": "^0.2.4",
"ts-loader": "^5.2.2",
"typescript": "^3.1.3",
"webpack": "^4.23.1"
},
"dependencies": {}
}
karma.config.ts
const webpackConfig = require('./webpack.config');
delete webpackConfig.entry;
webpackConfig.mode = "development";
webpackConfig.devtool = 'inline-source-map';
module.exports = function(config) {
config.set({
frameworks: ["jasmine", "karma-typescript"],
files: [
"spec/client.spec.ts",
{ pattern: './build/*.css', watched: true, served: true, included: true },
],
preprocessors: {
"**/*.ts": ['webpack', 'sourcemap']
},
webpack: webpackConfig,
reporters: ["progress", "kjhtml"],
browsers: ["Chrome"],
karmaTypescriptConfig: {
"compilerOptions": {
"target": "es6",
"lib": ["es5", "es6", "dom"],
}
},
/*
client: {
jasmine: {
random: false
}
}
*/
});
};
Тест (spec / client.spec.ts)
/// <reference path="../node_modules/@types/jasmine/index.d.ts" />
jasmine.DEFAULT_TIMEOUT_INTERVAL = 900000;
console.log('Init');
describe('[client]', () => {
console.log('Spec declarations');
it('[Test 1]', (done) => {
console.log('Test 1: started');
// Async stuff here
// ...
// ...
expect(true).toBe(true);
done();
});
it('[Test 2]', (done) => {
console.log('Test 2: started');
// Async stuff here
// ...
// ...
expect(true).toBe(true);
done();
});
it('[Test 3]', (done) => {
console.log('Test 3: started');
// Async stuff here
// ...
// ...
expect(true).toBe(true);
done();
});
it('[Test 4]', (done) => {
console.log('Test 4: started');
// Async stuff here
// ...
// ...
expect(true).toBe(true);
done();
});
});
Ситуация следующая. Если я закомментирую в karma.config.js настройки jasmine: все работает, но все тесты выполняются в случайном порядке.
В качестве результата я вижу вывод в консоли браузера:
Дело в том, что мне нужен строгий порядок выполнения теста: 1, 2, 3 и 4.
Если я добавлю настройки для жасмина, как:
клиент: {
жасмин: {
случайный: ложный
}
}
тесты вообще не запускались. И в выводе консоли браузера я вижу только:
Все тесты работают асинхронно.
Я убил кучу времени, было бы замечательно, если бы кто-то посоветовал решение