Как заставить Карму работать с Chrome
У меня Ubuntu 11.04 только для командной строки (GNU/Linux 2.6.35.4-rscloud x86_64), и я работаю над учебником по Angular Phonecat, в котором для тестирования используется Karma. На странице конфигурации браузера Karma написано, что Chrome Launcher "поставляется с Karma по умолчанию".
Но это не работает для меня. Это karma.conf.js. Ниже вывод.
$ ./scripts/test.sh
Starting Karma Server (http://karma-runner.github.io)
-------------------------------------------------------------------
INFO [karma]: Karma v0.10.4 server started at http://localhost:9876/
INFO [launcher]: Starting browser Chrome
ERROR [launcher]: Cannot start Chrome
Can not find the binary google-chrome
Please set env variable CHROME_BIN
Этот ответ указывает на то, что мне нужен хром.
Поэтому я попытался установить Chrome на мою Ubuntu с этим руководством с "скачать 64-битную версию с помощью командной строки". Все шло хорошо до тех пор, пока не sudo apt-get -f install
, которая закончилась большим количеством "неудачных попыток получить" с IP-адресов Ubuntu, таких как 91.189.91.15 или 91.189.92.. Даже с /usr/bin/googlesomething *, что "Не удается найти бинарный google-chrome" исчезает, у меня все еще есть "Не удается запустить Chrome" на уровне отдельных тестов. Затем, пытаясь исправить ошибки, я удалил /usr/bin/googlesomething.
В настоящее время у меня есть эти node_modules:
angular-phonecat/node_modules$ ls
karma karma-html2js-preprocessor karma-requirejs
karma-chrome-launcher karma-jasmine karma-script-launcher
karma-coffee-preprocessor karma-junit-reporter
karma-firefox-launcher karma-phantomjs-launcher
Вопрос 1: Поскольку у моей машины есть доступ только из командной строки, а графический интерфейс отсутствует, является ли другой пусковой механизм Karma, PhantomJS, лучшим выбором, чем Chrome/Chromium?
Q 2: Если я все еще буду использовать Chrome/Chromium, я должен получить Chrome или Chromium?
Вопрос 3: Кто-нибудь знает, что именно мне нужно, чтобы Google-Chrome или Chromium работали в приложении Angular для Karma?
Ответы
Ответ 1
Я буду расширять третий пункт Людвига для ищущих ответ и для моей собственной ссылки в будущем...
Первое, что вам нужно сделать, это найти, где chromium-browser
установлен. Run:
which chromium-browser
Это вернет путь к исполняемому файлу, который будет выглядеть примерно так:
/usr/bin/chromium-browser
Затем просто установите путь:
export CHROME_BIN=/usr/bin/chromium-browser
Теперь Карма может найти браузер, необходимый для выполнения ваших тестов (при условии, что вы решили использовать графический интерфейс).
Ответ 2
- Если у вас есть только интерфейс командной строки, PhantomJS - единственный выбор для вас.
- В linux (по крайней мере 12.04 и вперед) хром является альтернативой. Но вы не можете установить его, если у вас нет графического интерфейса ui.
- Ключ здесь: "Пожалуйста, установите переменную env CHROME_BIN". Карма пытается выполнить файл с именем
google-chrome
, и он не существует. Имя исполняемого файла для хром варьируется от ОС до ОС. Поэтому вам нужно установить переменную окружения CHROME_BIN, которая имеет значение имени вашего хром-исполняемого файла. В моей системе (рабочий стол Linux 13.10) это chromium-browser
.
Ответ 3
Когда я сегодня создал проект с генератором yoman angular, я не мог заставить хром или фантомы работать с кармой либо.
Оказывается, это проблема, характерная для этого проекта, и исправление просто добавляет отсутствующие плагины в package.json в вашем проекте корень.
Ответ 4
Мое решение заключается в создании псевдонима в Linux для Windws Chrome
alias launchchrome="\"/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe\""
и после этого экспортируйте этот псевдоним как переменную enux linux
export CHROME_BIN=launchchrome
Вот и все, теперь, если вы запустите ng test
ваш Windows Chrome будет использоваться! В моем случае это сработало. Если у вас возникнут проблемы с этим решением, пожалуйста, оставьте комментарий, я отредактирую свой ответ.
Ответ 5
Попробовали ли вы использовать сквозной тест? Я использую linux с командной строкой только на моем VPS, поэтому я использовал тестирование e2e, и он работает довольно хорошо.