Отладка и тестирование генератора

Беглый взгляд дает разработчикам некоторые средства для отладки и тестирования их кода генератора. Следующие разделы описывают те средства, и предлагает некоторые стратегии и уведомление для отладки и тестирования генераторов.

Средства отладки

Поскольку генератор является плагином и не является автономной исполнимой программой, отлаживание его могло быть проблематичным, если бы Вас оставили самостоятельно. К счастью, Беглый взгляд дает Вам способ отладить код генератора легко: qlmanage инструмент диагностики (установленный в /usr/bin). qlmanage выполняет генератор Вашего проекта в почти том же виде среды как демон Беглого взгляда (quicklookd) делает. Можно выполнить этот инструмент как исполнимую программу проекта и путем указания определенных параметров, можно продвинуться через генератор, кодируют и видят, как это обрабатывает предварительные просмотры и миниатюры.

Для установки проекта Беглого взгляда для отладки завершите следующие шаги:

  1. Выберите New Custom Executable из Меню проектов.

  2. В Окне помощника введите «qlmanage» как исполнимое имя. В Исполнимом Поле трактов указывают полный путь к инструменту:

    /usr/bin/qlmanage

    Нажмите Finish для увольнения Ассистента.

  3. Окно Executable Info появляется для qlmanage, как показано на рисунке 10-1. Щелкните по вкладке Arguments.

      Установка рисунка 10-1 qlmanage как пользовательская исполнимая программа
    Setting qlmanage as a custom executable
  4. В области Arguments окна Executable Info (рисунок 10-2) вводят один или несколько параметров отладки в таблицу Arguments.

    Рисунок 10-2 тех  , Указывающий документ, для который qlmanage запрашивает предварительный просмотр
    Specifying a document for which qlmanage requests a preview

    qlmanage инструмент берет следующие параметры:

    Флаг

    Значение

    Описание

    -p

    Абсолютный путь к документу

    Предварительный просмотр запросов указанного документа

    -t

    Абсолютный путь к документу

    Миниатюра запросов указанного документа.

    -r

    Ни один

    Сброс quicklookd и кэш генератора клиента Беглого взгляда

    -m

    Ни один

    Информация о печати о quicklookd действия, включая список обнаруженных генераторов

    -h

    Ни один

    Распечатывает краткое описание опций

Можно также работать qlmanage инструмент из командной строки. Следующий пример запрашивает миниатюру указанного документа:

qlmanage -t /tmp/MySketchDoc.sketch2

Этот пример выводит на экран предварительный просмотр для определенного документа:

qlmanage -p /tmp/MySketchDoc.sketch2

-m опция для qlmanage полезно, поскольку это распечатывает (к стандартному выводу) отчет от демона Беглого взгляда на состоянии генератора тока.

  Вывод Listing 10-1 Sample qlmanage -m

2007-04-05 17:00:46.998 qlmanage[1190:d03] Server statistics:
server: living for 21s (9 requests handled)
memory used: 10 MB (10551296 bytes)
last burst: during 0s - 1 requests - 0s idle
plugins:
  com.apple.ichat.ichat -> /System/Library/QuickLook/iChat.qlgenerator
  com.apple.safari.bookmark -> /System/Library/Frameworks/QuickLook.framework/Resources/Generators/Bookmark.qlgenerator
  com.apple.sketch1 -> /Library/QuickLook/QuickLookSketch.qlgenerator
  public.rtf -> /System/Library/Frameworks/QuickLook.framework/Resources/Generators/Text.qlgenerator
  public.audio -> /System/Library/Frameworks/QuickLook.framework/Resources/Generators/Audio.qlgenerator
  com.apple.dashboard-widget -> /System/Library/Frameworks/QuickLook.framework/Resources/Generators/StandardBundles.qlgenerator
  com.apple.rtfd -> /System/Library/Frameworks/QuickLook.framework/Resources/Generators/Text.qlgenerator
  com.microsoft.word.doc -> /System/Library/QuickLook/Office.qlgenerator
  com.apple.addressbook.person -> /System/Library/Frameworks/QuickLook.framework/Resources/Generators/Contact.qlgenerator
  public.plain-text -> /System/Library/Frameworks/QuickLook.framework/Resources/Generators/Text.qlgenerator
  com.apple.quartz-composer-composition -> /System/Library/Frameworks/QuickLook.framework/Resources/Generators/Movie.qlgenerator
  public.xml -> /Library/QuickLook/QuickLookSweet.qlgenerator
  com.apple.eventmanager.events -> /Library/QuickLook/WebViewQLPlugin.qlgenerator
  com.apple.sketch2 -> /Library/QuickLook/QuickLookSketch.qlgenerator
  com.apple.package -> /System/Library/Frameworks/QuickLook.framework/Resources/Generators/Package.qlgenerator
  com.apple.ical.bookmark -> /System/Library/Frameworks/QuickLook.framework/Resources/Generators/iCal.qlgenerator
  com.adobe.pdf -> /System/Library/Frameworks/QuickLook.framework/Resources/Generators/PDF.qlgenerator
  public.font -> /System/Library/Frameworks/QuickLook.framework/Resources/Generators/Font.qlgenerator
  com.apple.mail.emlx -> /System/Library/Frameworks/QuickLook.framework/Resources/Generators/Mail.qlgenerator
  com.microsoft.excel.xls -> /System/Library/QuickLook/Office.qlgenerator
  com.apple.eventmanager.eventsbin -> /Library/QuickLook/WebViewQLPlugin.qlgenerator
  com.apple.mail.email -> /System/Library/Frameworks/QuickLook.framework/Resources/Generators/Mail.qlgenerator
  com.apple.ical.ics -> /System/Library/Frameworks/QuickLook.framework/Resources/Generators/iCal.qlgenerator
  com.apple.systempreference.prefpane -> /System/Library/Frameworks/QuickLook.framework/Resources/Generators/StandardBundles.qlgenerator
  com.apple.safari.history -> /System/Library/Frameworks/QuickLook.framework/Resources/Generators/Bookmark.qlgenerator
  public.html -> /System/Library/Frameworks/QuickLook.framework/Resources/Generators/Web.qlgenerator
  com.apple.eventmanager.eventsq -> /Library/QuickLook/WebViewQLPlugin.qlgenerator
  com.apple.addressbook.group -> /System/Library/Frameworks/QuickLook.framework/Resources/Generators/Contact.qlgenerator
  public.movie -> /System/Library/Frameworks/QuickLook.framework/Resources/Generators/Movie.qlgenerator
  com.apple.application -> /System/Library/Frameworks/QuickLook.framework/Resources/Generators/StandardBundles.qlgenerator
  com.apple.ichat.transcript -> /System/Library/QuickLook/iChat.qlgenerator
  com.apple.ical.bookmark.todo -> /System/Library/Frameworks/QuickLook.framework/Resources/Generators/iCal.qlgenerator
  public.vcard -> /System/Library/Frameworks/QuickLook.framework/Resources/Generators/Contact.qlgenerator
generators change detected: NO

Как только Вы установили свой проект генератора Беглого взгляда для отладки, укажите точки останова в своем коде, измените конфигурацию сборки, чтобы Отладить, и выбрать Build и Debug из меню Debug.

Инструменты тестирования и стратегии

После того, как Ваш генератор, кажется, без ошибки, можно протестировать его далее, чтобы определить, должно ли что-либо еще быть улучшено. Скопируйте генератор в комплект приложений или в одно из стандартных расположений файловой системы для генераторов Беглого взгляда. Испытайте свой генератор с различными клиентскими приложениями (Средство поиска, Центр внимания, Машина времени, и т.д). Используя qlmanage как исполнимая программа (см. Средства отладки) можно протестировать генератор, чтобы видеть, как он обрабатывает миниатюры и предварительные просмотры. Предварительный просмотр силы - или генерация миниатюры путем закрытия окна Finder или Spotlight и видит, как хорошо отвечает генератор.

Кроме того, проверьте свой генератор, чтобы видеть, как хорошо он выполняет; если занимает больше времени, чем две секунды генерировать предварительный просмотр, то необходимо близко исследовать код для обнаружения, где Вы могли улучшить производительность.

Как средство тестированию или даже отладке, можно установить QLEnableLogging пользовательское значение по умолчанию в командной строке:

defaults write -g QLEnableLogging YES

После выполнения этого Беглый взгляд распечатывает сообщения журнала, показывающие его действие, такой как, какие генераторы это загружает и для каких документов это запрашивает предварительные просмотры и миниатюры. Вот демонстрационное сообщение журнала:

2006-12-15 11:18:16.839 quicklookd[26260:3b03] [QL] Thumbnailing /Users/jalon/Documents/PreviewableDocuments/Test5.sketch2. Content type UTI: com.apple.sketch2. Generator used: <QLGenerator /Library/QuickLook/quicklooksketch.qlgenerator>