JavaScript покрытие кода в модулях RequireJS/AMD

Короткий и, казалось бы, глупый вопрос, потому что он такой простой и, казалось бы, вездесущий: кто-нибудь получил какое-либо покрытие кода для работы в интерфейсном проекте RequireJS (не NodeJS)?

Вопрос кажется глупым из-за преобладания подходов TDD в мире JS и захвата разработки AMD.

Я перепробовал миллион подходов, все не хватает. Мой проект является проектом Backbone с модульными тестами Jasmine:

1) JSTD с плагином Coverage. У JSTD есть проблемы с правильной загрузкой и инструментированием модулей AMD.Если я запускаю JSTD для одного файла js (в сочетании с оптимизатором RequireJS), то покрытие кода работает прекрасно, ЗА ИСКЛЮЧЕНИЕМ того, что покрытие затем собирается и метрики определяются для ВСЕГО файла. Отлично, это бесполезно, потому что это включает в себя сторонние библиотеки, и потому что я не могу выделить отдельный модуль для помощи в тестировании разработки. Арх.

2) JSCoverage - полный провал, не любит модули AMD.

3) «Живые» инструментальные средства, специфичные для Chrome и Firebug — не работают, не нравятся модули AMD.

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

Как насчет следующего подхода: расширить оптимизатор RequireJS до инструментального кода и создать покрытие. Это инструментарий в памяти, который можно включить с помощью флага require.config({instrument: true}). Каждый раз, когда require загружает модуль, он автоматически обрабатывает его и помещает в свой репозиторий модулей. Статистика покрытия собирается в объекте под глобальным объектом require и доступна из любого места, например, после запуска теста Jasmine.

Ввод?

8
задан David Harkness 10 October 2013 в 23:58
поделиться