Как вы обслуживаете svg и приспособления с Karma Runner (aka Testacular)
Я пробовал последние два часа, чтобы заставить бегуна Karma служить файлу svg и html-устройству, но пока не повезло.
После второго ответа на эту тему: Ошибка при интеграции html с testacularjs Я пытался использовать served
, чтобы указать, что мои приборы и svg файл должны быть распределенным сервером, но я все еще получаю "НЕ НАЙДЕНО"
files = [
JASMINE,
JASMINE_ADAPTER,
REQUIRE,
REQUIRE_ADAPTER,
// put all components in requirejs 'paths' config here (included: false)
{ pattern: 'preview/public/components/**/*.js', included: false },
{ pattern: 'preview/public/js/**/*.js', included: false },
// assets
{ pattern: 'preview/public/img/svg/*.svg', included: false, served: true },
// helpers & fixtures for jasmine-jquery
{ pattern: 'test/libs/**/*.js', included: true },
{ pattern: 'test/fixtures/**/*.html', included: false, served: true },
// all src and test modules (included: false)
{ pattern: 'test/specs/**/*.spec.js', included: false },
// test main require module last
'test/test-main.js'
];
Я устанавливаю jasmine.getFixtures().fixturesPath
в /fixtures
, и я вижу, что он использует правильный путь, но я все еще получаю...
GET http://localhost:9876/img/svg/directional-pad-gradients.svg 404 (Not Found)
GET http://localhost:9876/fixtures/directional-pad.html 404 (Not Found)
Если у кого-нибудь есть пример загрузки светильников и/или svg с бегуном Karma, я бы полюбил действительно. Спасибо!
Ответы
Ответ 1
Отвечая на мой собственный вопрос здесь...
Я пытался загрузить мои светильники в http://localhost:9876/fixtures/directional-pad.html
Вместо этого я должен был попытаться обратиться к ним в http://localhost:9876/base/test/fixtures/directional-pad.html
Karma хранит все в соответствии с маршрутом base/
, поэтому любые статические маршруты файлов, которые вы добавите, должны начинаться с этого.
Ответ 2
Один из способов сделать это - настроить прокси-сервер.
Хорошим примером тестовой системы с использованием прокси-сервера является
https://github.com/yearofmoo-articles/AngularJS-Testing-Article
который является примером из Year of Moo, посвященного большому тестированию.
http://www.yearofmoo.com/2013/01/full-spectrum-testing-with-angularjs-and-testacular.html
Вы устанавливаете прокси-сервер в файле конфигурации кармы
proxies = {
'/': 'http://localhost:8100/'
};
Затем вам нужно настроить сервер на 8100
это можно сделать с помощью http-server
npm установить http-server --save-dev
затем создайте два файла
./server.sh
nf --procfile ./config/Procfile.server start
./конфигурации/Procfile.server
web_server: ./node_modules/http-server/bin/http-server -p 8100 preview/public
Затем вам нужно запустить сервер
./server.sh
Затем, когда вы запускаете тесты, прокси-сервер будет обслуживать ваши файлы.