2013-05-08 4 views
4

Я работаю над модулем Perl, который имеет много кода XS, а также использует Dist::Zilla для управления упаковкой. Каков наилучший способ эффективного тестирования? Я знаю о dzil test, но это довольно медленно, потому что он выполняет полный цикл сборки/компиляции/тестирования каждый раз, когда он вызывается.Тестирование модуля XS, который использует Dist :: Zilla

Было бы полезно обновлять только те детали, которые необходимо обновить после последнего теста, а также иметь возможность запускать только определенные тестовые сценарии , а не все из них. У кого-нибудь есть решение, которое им нравится?

+1

Вы и я оба. :) – friedo

+0

ha ha ha =) Да, в частности, было бы неплохо ускорить цикл кода/теста для пакета MongoDB. –

ответ

2

В прошлом я только что взял файл Build.PL/Makefile.PL, сгенерированный dzil, и поместил его в исходный репозиторий как «Makefile_dev.PL» (или «Build_dev.PL»), добавив его к MANIFEST.SKIP (или эквивалент на основе джиля, сгенерированный эквивалент) и использовал его во время разработки.

1

Для моих модулей XS я использую либо MakeMaker::Custom, либо ModuleBuild::Custom (оба меня). Если вы правильно настроите настройки, вы можете запустить Makefile.PL или Build.PL прямо в своем репо, не вызывая вообще dzil. Чтобы запустить определенные тесты, вы просто создаете dist и используете prove -b testname.

Некоторые примеры с использованием ModuleBuild :: Custom: Media-LibMTP-API, Win32-IPC.

Пример использования MakeMaker :: Custom: Win32-Setupsup.

1

Я знаю, что я сижу как старая школа, но по этим причинам, что я не использую Dist :: Zilla: когда он работает отлично, когда это не так, может быть очень сложно сделайте так, как хотите.

Я думаю, это означает, что мой ответ таков: когда он становится слишком тяжелым, просто перейдите к одному из основных инструментов, которые генерирует дзиль, т.е. МНЕС или МБ напрямую.

+0

Да, я тебя слышу. Тем не менее, не собираюсь сдаваться. =) Меня просто удивляет, что нет готового решения для тестирования. –

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

  • Нет связанных вопросов^_^