У меня есть небольшой набор тестов Жасмин, которые я пытаюсь запустить с Кармой.Любая помощь очень ценится.
Я могу нормально запускать тесты, если запускаю команду "Жасмин".Однако, когда я пытаюсь использовать Карму (начало кармы --singleRun = true), браузер открывается, но больше ничего не происходит до тех пор, пока Карма не истечет время с этим:
26 06 2019 14:40:24.431:INFO [karma]: Delaying execution, these browsers are not ready: Chrome 75.0.3770 (Windows 10.0.0)
26 06 2019 14:42:01.326:WARN [Chrome 75.0.3770 (Windows 10.0.0)]: Disconnected (0 times), because no message in 160000 ms.
26 06 2019 14:42:01.327:DEBUG [Chrome 75.0.3770 (Windows 10.0.0)]: CONFIGURING -> DISCONNECTED
Chrome 75.0.3770 (Windows 10.0.0) ERROR
Disconnected, because no message in 160000 ms.
26 06 2019 14:42:01.330:DEBUG [launcher]: CAPTURED -> BEING_KILLED
26 06 2019 14:42:01.332:DEBUG [launcher]: BEING_KILLED -> BEING_FORCE_KILLED
26 06 2019 14:42:01.333:WARN [karma]: No captured browser, open http://localhost:9876/
Chrome 75.0.3770 (Windows 10.0.0): Executed 0 of 0 DISCONNECTED (2 mins 40.011 secs / 0 secs)
Если я вместо этого запускаю с -singleRun = false и установил точки останова в моем тесте, затем запустил «karma run karma.conf.js» из новой командной строки, я заметил, что точки останова внутри обратных вызовов реализации для моих тестов никогда не попадут.Другие точки останова попадают просто отлично.
Например, в тесте ниже:
describe(">String Utils", function() {
it("should be able to lower case a string",function() {
expect(utils.toLowerCase).toBeDefined();
expect(utils.toLowerCase("HELLO WORLD")).toEqual("hello world");
});
Точка останова в функциях "description" или "it" получит удар.Но точка останова любого из «ожидаемых» никогда не будет достигнута.
Я вошел в функции «it», чтобы увидеть, есть ли ошибка при настройке спецификации жасмина, но все выглядит нормально.
Однако Карма никогда не вызывает обратные вызовы реализации. И браузер постоянно "простаивает"
Вот мой karma.conf.js.Ниже - мой spec-bundle.js, а ниже - мой веб-пакет.
Если есть что-то еще, что вы хотели бы увидеть, я могу опубликовать его, или вы можете просмотреть его на моем репозитории github: https://github.com/webgirlwonder/karma-jasmine-test
// Karma configuration
// Generated on Fri May 17 2019 10:37:04 GMT-0500 (Central Daylight Time)
var webpackConfig = require('./webpack.config.js');
module.exports = function(config) {
config.set({
// base path that will be used to resolve all patterns (eg. files, exclude)
basePath: '',
// frameworks to use
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ['jasmine','requirejs'],
// list of files / patterns to load in the browser
files: [
'spec-bundle.js'
],
// list of files / patterns to exclude
exclude: [
],
// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
// preprocessors: {
// '*.js': [ 'webpack' ],
// 'spec/*Spec.js': ['webpack' ]
// },
preprocessors: {
'spec-bundle.js': ['webpack' ]
},
webpack: webpackConfig,
// test results reporter to use
// possible values: 'dots', 'progress'
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ['spec'],
// web server port
port: 9876,
// enable / disable colors in the output (reporters and logs)
colors: true,
// level of logging
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_DEBUG,
/* // enable / disable watching file and executing tests whenever any file changes
autoWatch: true, */
// start these browsers
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
browsers: ['Chrome'],
/* // Continuous Integration mode
// if true, Karma captures browsers, runs the tests and exits
singleRun: true, */
// Concurrency level
// how many browser should be started simultaneous
concurrency: Infinity,
captureTimeout: 160000,
browserNoActivityTimeout: 160000,
})
}
spec-bundle.js
/*
* Create a context for all tests files below the src folder and all sub-folders.
*/
const context = require.context('./spec/', true, /\Spec\.js$/);
/*
* For each file, call the context function that will require the file and load it up here.
*/
context.keys().forEach(context);
webpack
const config = {
"mode": "development",
"entry": "./spec/MyJSUtilities.spec.js",
"target": "node",
"output": {
"path": __dirname+'/static',
"filename": "[name].[chunkhash:8].js"
}
}
module.exports = config;