2014-02-20 2 views
16

Я начал приложение Angular.js с 0 yo angular Yeoman, которое включает в себя тестирование на кармане. Затем grunt test разумно провалился, потому что Karma can't find any browsers. (browsers не был установлен в файле конфигурации node_modules/karma.)Можно ли запустить Карму без браузеров?

Я делаю свое развитие через SSH в удаленной машине, о которой я думаю (дайте мне знать, если я ошибаюсь) бессмысленно есть Chrome, /usr/bin/chromium-browser, установлен.

Как можно управлять кармой без каких-либо браузеров?

+5

Почему бы не использовать PhantomJS вместо Chrome? – Mik378

+0

Хорошая точка. Думаю, я это получу. Но возможно ли управлять кармой без каких-либо браузеров? – randwa1k

+4

Нет, Карме нужен браузер. – Mik378

ответ

17

Karma необходимо установить браузер.

Вы можете использовать PhantomJS вместо Chrome.
Действительно, это более сдержанный, чем традиционный запуск браузера.

+0

Этот комментарий опубликован на сайте 2014, ему все еще нужен браузер? –

+0

Да, он все еще требует этого. Возможно, вы захотите рассмотреть Mocha, если вы не хотите использовать какой-либо браузер. – Mik378

1

Этот вопрос и ответ очень актуальны на сегодняшний день (в скором будущем 2018,> angular2, @ angular/cli, typescript, ...).

Вот небольшое обновление, основываясь на том, что я нашел, как полезно в сети:

что у вас есть angular cli сгенерированный проект, который не был закаленное с. Скажем, вы хотите использовать PhantomJS для запуска ваших угловых тестов2 (ничего не шокирующее).

Начала установки PhantomJS запуска для Кармы в проекте

npm i --save-dev karma-phantomjs-launcher 

Далее вам необходимо обновить файл karma.conf.js следующим образом:

Первого в плагинах свойства:

plugins: [ 
    require('karma-jasmine'), 
    require('karma-phantomjs-launcher'), 
    require('karma-jasmine-html-reporter'), 
    require('karma-coverage-istanbul-reporter'), 
    require('@angular/cli/plugins/karma') 
], 

Тогда Свойства браузера

browsers: [ 'PhantomJS' ], 

Запуск теста на данный момент, вы, вероятно, наткнетесь на следующее сообщение об ошибке:

PhantomJS 2.1.1 (Windows 7 0.0.0) ERROR 
    TypeError: pre,template,textarea,script,style is not iterable! 
    at http://localhost:9876/_karma_webpack_/polyfills.bundle.js:792 

В принципе, это означает, что ваши PhantomJS потребности различных polyfills. Раскомментируем следующие строки в ваш src\polyfills.ts

import 'core-js/es6/symbol'; 
import 'core-js/es6/object'; 
import 'core-js/es6/function'; 
import 'core-js/es6/parse-int'; 
import 'core-js/es6/parse-float'; 
import 'core-js/es6/number'; 
import 'core-js/es6/math'; 
import 'core-js/es6/string'; 
import 'core-js/es6/date'; 
import 'core-js/es6/array'; 
import 'core-js/es6/regexp'; 
import 'core-js/es6/map'; 
import 'core-js/es6/weak-map'; 
import 'core-js/es6/set'; 

Последнее, но не в последнюю очередь, вот ссылки, которые помогли мне решить эту проблему:

How to run jasmine tests without browser ?

New angular-cli app not working on iphone 4s

Смежные вопросы