Короткий и, казалось бы, глупый вопрос, потому что так просто и вы думаете повсеместно: кто-нибудь получил какое-то покрытие кода для работы в рамках проекта front-end RequireJS (не NodeJS)?Кодирование кода JavaScript в модулях RequireJS/AMD
Кажется, это глупый вопрос из-за распространенности подходов TDD в мире JS и перехода на развитие AMD.
Я пробовал миллион подходов, все не хватает. Мой проект - проект магистральной системы с использованием тестов на жасмин:
1) JSTD с плагином для покрытия. JSTD имеет проблемы с загрузкой и настройкой модулей AMD. Если я запускаю JSTD в одном файле js (в сочетании с оптимизатором RequireJS), то покрытие кода прекрасно работает, ИСКЛЮЧАЕТ, что затем собирается покрытие, а показатели определены в файле ENTIRE. Отлично, это бесполезно, потому что это включает в себя сторонние библиотеки, и потому, что я не могу настроить таргетинг на единицу, чтобы помочь протестировать разработку. Argh.
2) АОсообщество - полное сбой, не нравится модули AMD.
3) Специфичные для Chrome & Firebug специфические «живые» приборы - не работают, не любят модули AMD.
Каждый подход, который я пытаюсь, требует большого количества пользовательской работы. Так что, может быть, мне нужно отменить собственное решение с нуля?
Как насчет следующего подхода: расширить оптимизатор RequireJS до кода инструмента и создать покрытие. Это была бы встроенная память, которая может быть включена с флагом require.config ({instrument: true}). Каждый раз, когда требуется загрузить модуль, он автоматически привязывает его и размещает в своем модульном репозитории. Статистика покрытия собирается в объекте под глобальным объектом-объектом и доступна из любого места, скажем, после теста Jasmine.
Ввод?
Покрытие кода нетривиально для реализации. Вам нужно будет сделать хакерство AST с чем-то вроде бункера. – Raynos
Согласен. Вот почему я начал с использования существующих библиотек AST и инструментов (Esprima, Node-Cover). У меня есть большинство изменений кода RequireJS, и я работаю над частью сбора инструментов и покрытия. – Bernardo