Как заставить Карму работать с 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.

Ответ 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, и он работает довольно хорошо.