Написание теста для модуля чеканки Dist::Zilla
-
01-10-2019 - |
Вопрос
Самое время мне написать функциональный тест для Dist::Zilla::Плагин::Catalyst.Но я понял, что понятия не имею, с чего начать.Я знаю, что у меня должен быть пользовательский профиль чеканки, распознанный моим набором тестов, и что я, вероятно, собираюсь просто протестировать, чтобы убедиться, что все нужные файлы выводятся с подходящей завивкой.Я совсем не уверен, какой модуль DZ вы используете для включения профиля чеканки, или как затем запустить монетный двор, а затем проверить выходные данные (потому что я подозреваю, что он собирается использовать временный каталог).
Не мог бы кто-нибудь дать мне несколько советов?существуют ли какие-либо другие модули чеканки, у которых есть тесты?
Решение
Тот Самый официальный раздел:: Учебное пособие по Zilla теперь имеет страница, посвященная написанию и тестированию новых плагинов.Это относится к плагинам в целом, а не к плагинам для чеканки, но нет ничего особенного или отличного в том, чтобы делать это для плагинов для чеканки.Вы можете видеть t/minter.
, как и предполагалось, чтобы увидеть, насколько это похоже.
Test::DZil
теперь поставляется с Dist:: Zilla и установлен для использования другими плагинами, и я использую его для тестирования всех моих непрофильных плагинов.
Другие советы
Вот очень базовый тестовый файл для минжи.
#!/usr/bin/perl
use strict;
use warnings;
use Dist::Zilla::Tester;
use Test::More;
use Path::Class;
my $tzil = Minter->_new_from_profile(
# which profile to run e.g. dzil new -p
[ Default => 'default' ],
# app name
{ name => 'CatApp', },
# location of whats esessntially your tests ~/.dzil
{ global_config_root => dir('corpus/mint')->absolute },
);
# same as running dzil new
$tzil->mint_dist;
# mint root, obviously getting the location of the temporary repo creation
my $mr = dir( $tzil->tempdir )->subdir('mint');
# test to see if CatApp.pm exists
ok( -e $mr->subdir('lib')->file('CatApp.pm'), 'CatApp.pm exists');
done_testing
Конечно, для многих реальных тестов вы также захотите прочитать чешевые файлы. Это можно сделать с $tzil->slurp_file('file');
.
Не сильно отличается от тестирования чему-то от регулярного Dist :: Zilla :: Тестер Тест, чтобы вы могли бы почитать блог, который я написал на Написание простого DIST :: ZILA :: Тестовый тест.