Po zgromadzeniu wystarczającej liczby testów, które wymagają trochę czasu, przyjrzałem się Test::Class::Load
doc, aby znaleźć wskazówkę do uruchamiania poszczególnych klas testowych. Zapewnia to sposób, ale muszę czegoś pomijać, ponieważ nie mogę tego zrobić. Oto co mam:Jak uruchomić pojedyncze testy za pomocą Test :: Class :: Load?
Mój katalog Test:
drewfus:~/sandbox$ ls t/
lib/ perlcriticrc PerlCritic.t Unit.t
t/Unit.t
składa się z następujących elementów:
use strict;
use warnings;
use Test::Class;
use Test::More 'no_plan';
use Test::Class::Load 't/lib';
Per sugestią w Test::Class::Load
doc, mam klasę bazową dla każdego z mojego testu klasy do odziedziczenia po, SG::TestBase
, która mieszka w t/lib/SG/TestBase.pm
:
package SG::TestBase;
use strict;
use warnings;
use base 'Test::Class';
INIT { Test::Class->runtests }
1;
I wreszcie, tutaj jest klasa przykład testy, SG::UtilsTest
na t/lib/SG/UtilsTest.pm
:
package SG::UtilsTest;
use strict;
use warnings;
use base 'SG::TestBase';
BEGIN { use_ok('SG::Utils') };
<etc>
Wszystko jest nadal aksamitny jeśli chcę uruchomić wszystkie testy z Build test
lub prove
, ale stara się wykonać jeden test nie robi „t praca:
drewfus:~/sandbox$ prove -lv SG::UtilsTest
Cannot determine source for SG::UtilsTest at /usr/share/perl/5.10/App/Prove.pm line 496
To działa, ale siedem lat później dokumentacja nadal ma ten sam błąd. – jja