Как запустить Perl xt тесты?
В последнее время новая великая вещь появилась в мире Perl. Долгое время в пакете библиотеки была папка t
это содержало тесты. Теперь есть еще одна папка xt
который содержит тест автора. xt
тесты не нужны в процессе установки библиотеки, но это помогает автору библиотеки убедиться, что код отличный.
Есть скрипт prove
который поставляется с Perl, который запускает тест. Если вы бежите prove
без параметров будут выполнены все тесты из папки 't'. Если вы хотите запустить оба t
а также xt
тест вы должны написать:
prove xt t
Это можно добавить в файл конфигурации .proverc
файл с параметрами (xt t
). Затем, когда вы бежите prove
без параметров они будут взяты из файла и будут выполнены тесты в обеих папках.
Но тут возникает проблема. Если у вас есть xt t
в вашем .proverc
файл, который вы не можете просто передать имя файла в качестве параметра prove
, Если вы говорите prove t/00-load.t
он выполнит все тесты в обеих папках, потому что он принимает параметры из конфигурационного файла. Вам нужно написать prove --norc
t/00-load.t
, Но это выглядит некрасиво.
Как вы управляете своим xt
тесты?
2 ответа
Авторские тесты не должны запускаться по умолчанию - вы не хотите, чтобы при установке CPAN произошел сбой, поскольку некоторые из ваших синтаксисов POD неверны. В идеале они должны запускаться при выпуске, когда это требуется.
Смотрите http://elliotlovesperl.com/2009/11/24/explicitly-running-author-tests/ для метода, включающего Module:: Build.
Я иногда использую Dist:: Zilla, которая обрабатывает авторские тесты по умолчанию.
Я добавить
package MY;
sub depend {
"
xtest :: test
\$(MAKE) test TEST_FILES=xt/*.t
"
}
в Makefile.PL
, Это запускает нормальные тесты, а затем xt
тесты.