2016-07-06 2 views
1

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

Я поместил этот простой фиктивный объект рядом с моим тестам:

package MockObject; 
1; 

Если я просто скажу use MockObject; в тестовом случае make test не может найти MockObject. Имеет смысл; в конце концов, он не установлен в системе, и он не находится рядом с тестируемым модулем.

Я могу запустить свои тесты с prove -I lib -I t t/*.t, но я хотел бы сохранить make test, если только для лени печатать несколько символов меньше.

Поскольку mock-объект не является полным модулем и не должен быть официально установлен в любом случае, я не могу и не хочу устанавливать TEST_REQUIRES в Makefile.PL.

Добавление test => { FILES => 't/*.t', INC => 't/' } в Makefile.PL не помогло.

Как я могу просто (просто) повторно использовать код-код в Perl с созданным MakeMaker Makefile?

+1

Либо установить PERL5LIB включить свой каталог т, или просто 'использовать lib' внутри тестового файла. – xxfelixxx

ответ

1

Установите PERL5LIB или добавьте use lib в свой скрипт. Я нашел FindBin package полезной для настройки пути lib для тестов.

use FindBin qw($Bin); 
use lib "$Bin/../lib"; 

Где:

$Bin - path to bin directory from where script was invoked 
+0

Я просто использую 'use lib 't';', который мне все еще нужно скопировать в очень тестовый пример, но это намного лучше, чем копирование всего макета кода, не возиться с глобальными настройками и работает. – Robert

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