2013-02-21 2 views
2

У меня есть приложение рельсы, что когда я запускаю свои тесты я создаю новые файлы в моей/ей папкеSimple Покрытие маршрута не отображается

Finished in 20.6 seconds 
19 examples, 0 failures 
Coverage report generated for RSpec to /Users/nicholasshook/Sites/<<my project>>/coverage. 264/446 LOC (59.19%) covered. 

Done.

Однако, когда я пытаюсь идти на локальный/освещение/index.html Я получаю эту ошибку

No route matches [GET] "/coverage/index.html" 

Благодарности

+0

Где находится/охват? Под/контроллеры? – Catfish

+0

это в корне моего приложения rails. Я могу попробовать переместить его на контроллеры. изменить: ничего не изменил – shicholas

ответ

6

Если вы используете SimpleCov или некоторый подобный камень для получения результатов испытаний, эти являются статическими HTML-файлами, которые предназначены для просмотра локально на вашем компьютере. И.Е. просто просмотрите/Users/nicholasshook/Sites/<> /coverage/index.html и откройте этот файл в своем браузере.

Rails не создает маршруты для /coverage/index.html для обеспечения безопасности и удобства управления. Вы можете создать маршрут к статическим страницам html, но они должны быть в/общедоступном каталоге. Если вам нужны результаты покрытия, чтобы быть доступным в вашем приложении, у вас есть несколько вариантов:

  1. Переместить файл покрытия в общедоступном каталоге/и использовать драгоценный камень, как High_Voltage https://github.com/thoughtbot/high_voltage создающих маршрут там
  2. Вам нужно либо перенастроить инструмент покрытия для размещения файлов в/общедоступном каталоге, либо вручную скопировать их по
+0

высокое напряжение не работало, он сказал, что мой index.html недействителен UTF-8. Однако перемещение всей папки/покрытия в общей папке работало. Обновлен мой .gitignore, чтобы отразить изменения. Спасибо! – shicholas

2

Мне удалось это сделать, используя следующую строку сразу после SimpleCov.start 'rails' в моем Файл spec_helper.rb.

SimpleCov.start 'rails' 
SimpleCov.root('/my/app/root/directory/public') 

Вы должны также добавить/Public/охват вашего .gitignore файла

2

Τhis ломает покрытие. Было бы лучше:

cd public && ln -s ../coverage coverage 
Смежные вопросы