Как мне обслуживать активы при запуске теста ng с использованием последней версии angular-cli (бета-версия 15 с веб-пакетом)?

Когда я пытаюсь запустить тест ng, все мои модули и компоненты загружаются правильно, но любые активы, которые я включаю в теги <img>, не отображаются, потому что они не обслуживаются в папке /assets (как в сборке). или во время разработки с использованием ng serve)

В дополнение к этому было бы неплохо узнать, как включить глобальный файл styles.scss/css в тест, поскольку я могу заставить эти стили отображаться только в том случае, если я добавлю CSS в компонент и отключу ViewEncapsulation.

Я использую последнюю версию веб-пакета angular-cli (бета-версия 15).

Любая помощь приветствуется.


person ProgrammerInProgress    schedule 17.10.2016    source источник


Ответы (1)


Я нашел ответ!

По умолчанию настройка кармы в angular-cli (webpack) по умолчанию не обслуживает вашу папку с ресурсами, но это очень просто добавить (после того, как вы просмотрите документацию)

ниже приведен скриншот моих результатов и код, который я добавил, чтобы заставить его работать

введите описание изображения здесь

Слева вы можете увидеть мое изображение Билли Мэйса, которое сейчас обслуживается, справа, если вы посмотрите на раздел «файл» json, я добавил следующее:

{ pattern: './src/assets/**', watched: false, included:false, nocache:false, served:true }

Я также добавил свойство прокси, чтобы принимать обслуживаемый контент (по умолчанию обслуживается на порту http://localhost:[karma). номер]/база

proxies: {
   '/assets/': '/base/src/assets/'
},

Указав /assets/ в качестве прокси папки, карма использует путь localhost:[karma port number]/assets вместо пути по умолчанию.

Я рад, что смог ответить на свой вопрос, и надеюсь, что это поможет некоторым людям, начинающим с angular-cli!

person ProgrammerInProgress    schedule 17.10.2016
comment
Я знаю, там сказано не говорить спасибо, но спасибо! Я пропустил раздел «файлы» выше при первом чтении, потому что он не помечен как код, как раздел «прокси» - возможно, вы могли бы переформатировать? - person dylan oliver; 21.12.2016
comment
Это работает как решение этой ошибки. github.com/angular/angular-cli/issues/14593 - person Denis Anisimov; 08.07.2019
comment
@ProgrammerInProgress, вы знаете, как запросить файл через http: http.expectOne('./assets/i18n/2/en.json'), это сработает? - person Shamitha Silva; 07.02.2020
comment
Очень старый, но очень актуальный пост. Огромное спасибо. Между прочим, карма и веб-пакет в настоящее время аварийно завершают работу, если часть прокси не установлена ​​с помощью UnhandledRejection: Cannot read property 'range' of undefined. См. мой пост stackoverflow.com/a/65347089/2416394, который в конечном итоге будет ссылаться на вас, потому что ваше решение намного лучше: ) - person Samuel; 22.12.2020