Кажется, что все наши модульные тесты кармы успешны в нашей автоматической сборке, но бегун PhantomJS возвращает ненулевой результат в среду сборки (TeamCity). Единственная ошибка, которую я могу найти в журналах:
[17:53:31][JavaScript Unit Tests] PhantomJS 2.1.1 (Windows 8.0.0) ERROR
[17:53:31][JavaScript Unit Tests] An error was thrown in afterAll
[17:53:31][JavaScript Unit Tests] SyntaxError: Unexpected token ','
Проект использует:
- AngularJS@1.4.8
- karma@4.1.0
- npm@6.9.0
- Node.js@v12.3.1
karma.conf.js:
// Karma Configuration
module.exports = function (config) {
config.set({
browsers: ["PhantomJS"],
files: [
"scripts/vendor/angularjs/1.4.8/angular.js",
"scripts/vendor/angularjs/1.4.8/angular-animate.js",
"scripts/vendor/*.js",
"scripts/angular/**/*.module.js",
"scripts/angular/**/*.app.js",
"scripts/angular/**/*.js",
"scripts/angular/**/spec/*.spec.js"
],
exclude: [
"scripts/vendor/angular-1*.js",
"scripts/vendor/angular-animate.js",
"scripts/angular/anycastManagementApp/anycastManagement.app.js",
"scripts/angular/cart/**/.js",
"scripts/angular/cart/*.js",
"scripts/vendor/bootstrap.min.js",
"scripts/angular/angular-bootstrap-datetimepicker/**/*.*"
],
plugins: [
"karma-jasmine",
"karma-jasmine-matchers",
"karma-chrome-launcher",
"karma-phantomjs-launcher",
"karma-teamcity-reporter",
"karma-spec-reporter",
"karma-coverage"
],
frameworks: ["jasmine", "jasmine-matchers"],
port: 9000,
logLevel: config.LOG_DEBUG,
client: {
jasmine: {
random: false
}
}
});
}
Вещи, которые я пробовал:
- Несколько разных версий karma / Node.js.
- Некоторые похожие вопросы предполагали, что в наших тестах есть условие гонки, и мы должны отключить случайный порядок по умолчанию кармы, но это не помогло.
- В наших файлах .spec.js нигде нет асинхронности.
Мои следующие шаги: Полагаю, я начну отключать отдельные тесты, чтобы посмотреть, повлияет ли какой-либо из них на этот результат после всего.
Обновление: отключение всех тестов с помощью xdescribe не устранило ошибку. Поэтому я знаю, что ошибка связана не с самими тестами, а с некоторой ошибкой или несовместимостью в плагинах / библиотеках.