2014-02-09 2 views
4

Я добавил gem 'jasmine', '~> 2.0.0' в мой Gemfile (group :development, :test) и запустил генератор rails g jasmine:install.Почему жасмин не работает ни в одном из моих спецификаций?

У меня есть один простой спецификации:

# spec/javascripts/truth_spec.js 
describe("Truth", function() { 
    it("herps the derps", function() { 
    expect(true).toEqual(true); 
    }); 
}); 

Когда я бегу rake jasmine я получаю предположительно нормальный выход:

your server is running here: http://localhost:8888/ 
your tests are here:   /Users/jared/git/givegab/spec/javascripts 
your source files are here: /Users/jared/git/givegab 

>> Thin web server (v1.5.1 codename Straight Razor) 
>> Maximum connections set to 1024 
>> Listening on 0.0.0.0:8888, CTRL+C to stop 

Я открываю http://localhost:8888/ в моем браузере, и я получаю пустой серый экран. Моя консоль JS пуста, ошибок нет, и когда я трассирую выполнение с помощью отладчика , я могу пройти черезboot.js и jasmine.js. Ошибок не возникает.

Я могу установить точку останова отладчика в truth_spec.js, и он никогда не попадает в цель.

Это мой первый раз, используя жасмин, поэтому , пожалуйста, предположите, что у меня что-то не хватает.

ответ

0

Мой коллега нашел корень проблемы. К нашему большому смущению мы переписывали window.onload. Я не могу придумать никакого способа, чтобы жасмин (или S.O.) мог идентифицировать такую ​​глупую ошибку. Спасибо, что нашли время, чтобы помочь нам устранить эту проблему.

Изготовитель драгоценного камня ragaskarhelped us troubleshoot this, и дал нам несколько полезных советов.

+0

'(window.onload === null)' для меня. Все еще не может ударить точки останова внутри 'it (...)'. – Cody

3

Если жасмин установлен правильно, тогда открытие http://localhost:8888/jasmine в вашем браузере должно запускать все ваши спецификации.

Вы также можете запустить определенные функции с:

http://localhost:8888/jasmine?spec=herps the derps

+7

Когда я нахожусь «http: // localhost: 8888/jasmine», я вижу «Файл не найден:/jasmine» –

0

Убедитесь, что файл в config/initializers/ под названием jasminerice.rb, со следующим содержанием в нем, если вы хотите использовать интерактивный веб-версию:

# Use this file to set configuration options for Jasminerice, all of these are initialized to their respective defaults, 
# but you can change them here. 
if defined?(Jasminerice) == 'constant' 
    Jasminerice.setup do |config| 
    # Tell Jasminerice to automatically mount itself in your application. If set to false, you must manually mount the 
    # engine in order to use Jasminerice. 
    #config.mount = true 

    # If automatically mounting Jasminerice, specify the location that it should be mounted at. Defaults to /jasmine, so 
    # you could access your tests at http://YOUR_SERVER_URL/jasmine 
    #config.mount_at = '/jasmine' 

    # Specify a path where your fixutures can be found. Defaults to 'spec/javascripts/fixtures' 
    #config.fixture_path = 'spec/javascripts/fixtures' 
    end 
end 

После этого обязательно перезапустите сервер рельсов. Это инициализатор устанавливает маршруты во время выполнения для веб-просмотра жасмин, так что если вы запустите rake routes | grep jasmine, вы должны увидеть следующее:

jasminerice /jasmine Jasminerice::Engine GET /spec/:spec_id/fixtures/*filename(.:format) jasminerice/spec#fixtures spec_index GET /spec(.:format) jasminerice/spec#index GET /fixtures/*filename(.:format) jasminerice/spec#fixtures GET /(:suite)(.:format) jasminerice/spec#index

+2

В моем проекте не используется жемчужина jasminerice. Мы использовали жемчужину (https://github.com/pivotal/jasmine-gem) само по себе, пока я был в проекте. Мы просто пытаемся обновить жасмин до 2.0. Нам действительно нужен жемчуг jasminerice? –

+0

Ах, здесь мы всегда использовали оба с первого дня. Я почти забыл, что они разные драгоценные камни. Да, если вам нужна простая интеграция рельсов и маршрут, который размещен на вашем сервере rails, вам нужно будет использовать 'jasminerice'. –

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