Карма выбрасывает 'Uncaught TypeError: Невозможно прочитать свойства' plugins 'undefined', несмотря на то, что я нахожусь в моих файлах index.html и karma.conf.js - PullRequest
0 голосов
/ 23 октября 2018

Мне было поручено настроить модульные тесты для унаследованного приложения AngularJS (в настоящее время ни один из них не существует, поэтому я все это настраиваю).Однако у меня возникли некоторые проблемы с запуском моего первоначального теста.Я уже давно очищаюсь от ошибок, но я застрял на этой текущей.

Когда я запускаю команду 'karma start', она выдает следующую ошибку ( Следует отметить, что я получаю эту ошибку только при попытке запустить мой модульный тест, она не возникает, когда ясоздайте приложение для локального запуска ):

"message": "Uncaught TypeError: Cannot read property 'plugins' of undefined at Web/js/plugins/flot/curvedLines.js:308:12

И эта строка является следующим кодом: $.plot.plugins.push(

Я прочитал несколько ссылок github и stackoverflow, и я 'Я последовал их совету, но я все еще сталкиваюсь с проблемой.Я попытался поместить теги сценария в верхнюю часть моего файла index.html, и мой файл karma.conf.js определенно содержит файлы для плагина flot через строку:

'Web/js/plugins/**/*.js',
//the full path for the plugin is 'Web\js\plugins\flot'

Однако язаметил, что есть файл 'jquery.flot.js'. Будет ли строка в моем файле karma выше включать этот файл jquery? В качестве эксперимента я также включил в свой файл karma.conf.js следующую строку:

'Web/js/plugins/flot/jquery.flot.js'

Однако когдапри этом Карма выдает еще одну ошибку.На этот раз, говоря, что я не загружаю свой основной модуль приложения, с точной ошибкой:

Uncaught Error: [$injector:nomod] Module 'app' is not available! You either misspelled the module name or forgot to load it.

Однако я загружаю свое приложение в самом верху моего файла модульного теста перед каждым оператором, поэтому я не знаю, почему это приведет к ошибке.Кроме того, мое приложение не просто называется «приложение», оно имеет другое имя, и у меня правильно включен модуль с другим именем.

Так что сейчас я немного растерялся. Я на правильном пути, если я включил этот файл jquery.flot.js явно в мой файл karma.conf.js?Или это неправильный подход, и у меня должна быть только строка 'Web/js/plugins/**/*.js' ?Если да, то где мне искать дальше?

Заранее спасибо.

1 Ответ

0 голосов
/ 24 октября 2018

Не уверен, поможет ли это кому-либо, но я разобрался в своей проблеме.

По-видимому, было несколько мертвых плагинов, которые Карма подобрала благодаря моему чрезмерному заявлению в разделе файлов.Эти плагины зависели от других пакетов, не включенных в проект, что вызывало ошибки.Исключение этих файлов в karma.conf.js устранило мою проблему.

...