Как запустить 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 тесты.

Другие вопросы по тегам