jHipster: тесты на карму проходят с «тестом на пряжу», но не проходят в WebStorm

Я настроил проект с использованием jHipster с интерфейсом Angular 4, и у меня возникли проблемы с запуском модульных тестов Karma в моей IDE WebStorm (v2017.2.4).

Однако, если я запускаю их все вместе, используя yarn test в командной строке, они все проходят. Это действительно замедляет меня, потому что выполнение всех подобных тестов занимает очень много времени, когда я хочу быстро запустить только определенный тест в среде IDE.

Сообщение об ошибке в WebStorm, которое я получаю:

Ошибка: не удается разрешить все параметры для XXXService: (?).

(Где XXX — это имя одной из многих служб, которые выходят из строя).

Я установил пустой проект, сгенерированный jHipster, на github, чтобы продемонстрировать проект, в котором я столкнулся с этой проблемой: https://github.com/TLDC/jhi-karma-issue-test. Запуск любых тестов в src/test/javascript дает мне эту проблему.

Есть ли способ настроить WebStorm, чтобы эти тесты проходили в среде IDE, а не только с помощью теста на пряжу?

EDIT: обнаруженный yarn test фактически запускает команду yarn run lint && karma start src/test/javascript/karma.conf.js

РЕДАКТИРОВАТЬ 2: теперь я обнаружил на вкладке Karma Server в WebStorm, что он сообщает, что веб-пакет не смог скомпилироваться до запуска тестов с большим количеством сообщений о различных ошибках. Я включил фрагмент этого здесь:

ОШИБКА в [at-loader]./spec/helpers/mock-principal.service.ts:14:59 TS2693: «Promise» относится только к типу, но здесь используется как значение.

ОШИБКА в [at-loader]./spec/test.module.ts:24:14 TS1219: экспериментальная поддержка декораторов — это функция, которая может быть изменена в будущем выпуске. Установите параметр «experimentalDecorators», чтобы удалить это предупреждение.

веб-пакет: не удалось скомпилировать.

Полный отчет об ошибке находится здесь (до усечения) https://gist.github.com/TLDC/af7d319d1c2a87bc1cfb9233e725bd3a< /а>


person Plog    schedule 15.09.2017    source источник
comment
есть ли проект github, представляющий проблему? На ваш вопрос нельзя ответить, не имея воспроизводимого примера вашей проблемы. Никакого plunkr или чего-то подобного, кроме полностью настроенного проекта github   -  person smnbbrv    schedule 18.09.2017
comment
Я пытаюсь сделать небольшой проект, в котором сейчас есть проблема. Я не могу поделиться фактическим кодом, потому что он конфиденциальный. У меня возникли проблемы с тем, чтобы он не работал в небольшом примере, хотя это странно. Код, который мы используем, автоматически сгенерирован jHipster, поэтому я добавлю этот тег к моему вопросу.   -  person Plog    schedule 18.09.2017
comment
Хорошо, я сгенерировал пустой проект jhipster и сделал для него github: github.com/TLDC/ jhi-karma-issue-test вы можете попробовать запустить любые тесты Karma в src/test/javascript, и они должны завершиться ошибкой в ​​WebStorm с той же ошибкой, что и у меня.   -  person Plog    schedule 18.09.2017
comment
работает совершенно нормально для меня. Вебсторм 2017.2.3. Какая у вас версия? Что я сделал: щелкните правой кнопкой мыши файл .spec, появится инструмент run blabla.spec.ts, Test run, все тесты пройдены, а затем я могу выбрать один файл из списка для повторного запуска.   -  person smnbbrv    schedule 18.09.2017
comment
У меня тоже 2017.2.3. Почему на моем не работает. Я тоже именно так и делал..   -  person Plog    schedule 18.09.2017
comment
может что я сделал по другому: установил все с npm install, а не с yarn; используя нпм@5. В идеале это не должно иметь никакого значения, но кто знает...   -  person smnbbrv    schedule 18.09.2017
comment
Вместо этого я попытался установить npm, и он все еще не работает для меня. У вас нет плагинов для webstorm, которые могли бы что-то делать? Немного хватаюсь за соломинку, но я очень смущен.   -  person Plog    schedule 18.09.2017
comment
@smnbbrv или, возможно, у вас есть какие-то настройки? Не могли бы вы экспортировать свои настройки WebStorm и как-то поделиться ими со мной?   -  person Plog    schedule 18.09.2017
comment
нет, сырой веб-шторм просто без настроек... :(   -  person smnbbrv    schedule 18.09.2017
comment
Я так растерялся. Я только что сделал новую установку на другой машине, вытащил ее из github, и она все еще не работает для меня. Я должен что-то упустить   -  person Plog    schedule 19.09.2017
comment
просто появилась другая идея. Вы пытались сделать это на действительно свежей машине? Может быть, у вас есть какой-то глобальный экземпляр karma/phantomjs/что-то еще, установленное с npm i -g? У меня их нет. А какую ОС используете?   -  person smnbbrv    schedule 19.09.2017
comment
Второй раз пробовал на супер свежей машине. Никогда раньше над ним не работала разработка. Была Windows 8. Первый раз была на Windows 10.   -  person Plog    schedule 19.09.2017
comment
у меня macOS Sierra, может в этом и дело   -  person smnbbrv    schedule 19.09.2017
comment
Это может быть все. Интересно, что отличается. Я только что заметил, что теперь на вкладке Karma Server в WebStorm я получаю «webpack: Failed tocompile». до того, как начнется карма, я думаю, это не происходит с тобой?   -  person Plog    schedule 19.09.2017
comment
Наконец решил, спасибо за помощь @smnbbrv. Поскольку я не могу присудить вам награду, я попытаюсь отплатить вам другими способами. :)   -  person Plog    schedule 19.09.2017
comment
это действительно хорошо, что вы нашли это :) выглядело очень сложно   -  person smnbbrv    schedule 19.09.2017


Ответы (2)


Если MyTestModule не экспортирует HttpModule (надеюсь, что нет), значит, тест настроен недостаточно. Просто добавьте HttpModule к imports, и он должен работать в любой среде:

TestBed.configureTestingModule({
  imports: [MyTestModule, HttpModule],
  declarations: [AlertTableComponent],
  providers: [AlertService]
})
person valorkin    schedule 18.09.2017
comment
Спасибо за ответ, но я не так уж ищу решение для изменения кода, так как знаю, что тесты работают. Они просто не работают в IDE. Также попробовал это, и они все еще не работают в среде IDE. - person Plog; 18.09.2017
comment
Да, они работают. Но вы знаете, это неправильная конфигурация испытательного стенда - person valorkin; 18.09.2017
comment
Ваше исправление также не работает. Я много редактировал исходный вопрос, чтобы немного прояснить ситуацию. - person Plog; 18.09.2017
comment
ваш репозиторий работал нормально, можете ли вы поделиться конфигурацией задания кармы и ошибками, если таковые имеются? - person valorkin; 18.09.2017
comment
извините за медленный ответ, я прикрепил изображение моей конфигурации Karma и более подробную ошибку - person Plog; 19.09.2017
comment
и какую ОС вы используете? - person Plog; 19.09.2017
comment
Я наконец решил это. Спасибо за ваши усилия, я вознагражу вас за это. - person Plog; 19.09.2017
comment
Рад, что вы исправили :) - person valorkin; 19.09.2017

Наконец-то мне удалось решить эту проблему.

Во-первых, благодаря @smnbbrv кажется, что эта проблема может возникнуть только в Windows. Это имеет некоторый смысл, поскольку где-то проблема с путями.

Проблема, которую я обнаружил, заключалась в том, что перед запуском тестов Karma веб-пакет пытался скомпилировать файлы TypeScript, ссылающиеся на файл tsconfig.json в:

корень проекта/SRC/тест/javascript/tsconfig.json

Однако этот файл не существует в этом месте, и вместо того, чтобы сообщить об этом как о проблеме, он вместо этого сообщил о большом количестве ошибок компиляции TypeScript на консоли Karma Server. Это приводит к провалу тестов.

Я смог исправить это, просто скопировав файл tsconfig.json из его фактического местоположения в

корень проекта/tsconfig.json

к тому, который ожидался веб-пакетом в тест-раннере Karma. Затем это приводит к тому, что все тесты в WebStorm проходят, как и ожидалось.

В идеале было бы хорошо найти какую-то конфигурацию, которую можно изменить где-нибудь, чтобы указать веб-пакету, где искать этот файл, но я не могу найти, где это сделать. Но этот обходной путь, безусловно, работает для меня на данный момент.

person Plog    schedule 19.09.2017