Hello community, here is the log from the commit of package perl-Test-Class for openSUSE:Factory checked in at 2015-06-09 12:25:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Test-Class (Old) and /work/SRC/openSUSE:Factory/.perl-Test-Class.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Test-Class" Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Test-Class/perl-Test-Class.changes 2015-04-15 16:26:57.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.perl-Test-Class.new/perl-Test-Class.changes 2015-06-09 12:25:04.000000000 +0200 @@ -1,0 +2,16 @@ +Sun Jun 7 09:05:35 UTC 2015 - co...@suse.com + +- updated to 0.50 + see /usr/share/doc/packages/perl-Test-Class/Changes + + 0.50 [2015-06-07] + - add links to Ovid's tutorial series on Test::Class (Tim Vroom, PR#19) + - add links to Test::Class::Most, Test::Class::Moose (Tim Vroom, PR#20) + - list some distributions that use Test::Class in their test suite (Tim + Vroom, PR#21) + - update documentation about running individual tests (Matthew Horsfall, + PR#22) + - fix some tests to work with the new Test::Stream (Chad Granum, PR#27) + - switch packaging to ExtUtils::MakeMaker + +------------------------------------------------------------------- Old: ---- Test-Class-0.48.tar.gz New: ---- Test-Class-0.50.tar.gz cpanspec.yml ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Test-Class.spec ++++++ --- /var/tmp/diff_new_pack.SpGC7Z/_old 2015-06-09 12:25:04.000000000 +0200 +++ /var/tmp/diff_new_pack.SpGC7Z/_new 2015-06-09 12:25:04.000000000 +0200 @@ -17,30 +17,30 @@ Name: perl-Test-Class -Version: 0.48 +Version: 0.50 Release: 0 %define cpan_name Test-Class Summary: Easily create test classes in an xUnit/JUnit style License: Artistic-1.0 or GPL-1.0+ Group: Development/Libraries/Perl Url: http://search.cpan.org/dist/Test-Class/ -Source: http://www.cpan.org/authors/id/E/ET/ETHER/%{cpan_name}-%{version}.tar.gz +Source0: http://www.cpan.org/authors/id/E/ET/ETHER/%{cpan_name}-%{version}.tar.gz +Source1: cpanspec.yml BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: perl BuildRequires: perl-macros BuildRequires: perl(MRO::Compat) >= 0.11 -BuildRequires: perl(Module::Build) >= 0.4004 BuildRequires: perl(Module::Runtime) BuildRequires: perl(Test::Builder) >= 0.78 -BuildRequires: perl(Test::Exception) >= 0.25 +BuildRequires: perl(Test::Exception) >= 0.250000 BuildRequires: perl(Test::More) >= 0.78 -BuildRequires: perl(Test::Simple) >= 1.001002 +BuildRequires: perl(Test::Simple) >= 0.78 BuildRequires: perl(Try::Tiny) Requires: perl(MRO::Compat) >= 0.11 Requires: perl(Module::Runtime) Requires: perl(Test::Builder) >= 0.78 -Requires: perl(Test::Simple) >= 1.001002 +Requires: perl(Test::Simple) >= 0.78 Requires: perl(Try::Tiny) %{perl_requires} @@ -63,14 +63,15 @@ find . -type f -print0 | xargs -0 chmod 644 %build -%{__perl} Build.PL installdirs=vendor -./Build build flags=%{?_smp_mflags} +%{__perl} Makefile.PL INSTALLDIRS=vendor +%{__make} %{?_smp_mflags} %check -./Build test +%{__make} test %install -./Build install destdir=%{buildroot} create_packlist=0 +%perl_make_install +%perl_process_packlist %perl_gen_filelist %files -f %{name}.files ++++++ Test-Class-0.48.tar.gz -> Test-Class-0.50.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Class-0.48/Build.PL new/Test-Class-0.50/Build.PL --- old/Test-Class-0.48/Build.PL 2014-11-07 01:49:12.000000000 +0100 +++ new/Test-Class-0.50/Build.PL 1970-01-01 01:00:00.000000000 +0100 @@ -1,51 +0,0 @@ -use Module::Build 0.4004; # test_requires - -use strict; -use warnings; - -use Test::Builder; - -# 0.99 broke test_out with qr// -my $tb_v = Test::Builder->VERSION eq '0.99' ? '1.001002' : '0.78'; - -my $build = Module::Build->new( - module_name => 'Test::Class', - license => 'perl', - configure_requires => { - 'Module::Build' => '0.4004', - }, - requires => { - 'perl' => '5.008001', - 'Attribute::Handlers' => '0.77', - 'MRO::Compat' => '0.11', - 'Storable' => '2.04', - 'Test::Simple' => '1.001002', - 'Test::Builder' => $tb_v, - 'Test::Builder::Tester' => '1.02', - 'Carp' => '0', - 'File::Find' => '0', - 'File::Spec' => '0', - 'constant' => '0', - 'strict' => '0', - 'warnings' => '0', - 'Try::Tiny' => '0', - 'Module::Runtime' => '0', - }, - test_requires => { - 'Test::Exception' => '0.25', - 'IO::File' => '1.09', - 'Test::More' => '0.78', - 'Fcntl' => '0', - 'Test' => '0', - 'base' => '0', - 'overload' => '0', - }, - meta_merge => { - resources => { - repository => 'http://github.com/adrianh/test-class/', - }, - }, - create_makefile_pl => 'traditional', - create_readme => 1, -); -$build->create_build_script; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Class-0.48/Changes new/Test-Class-0.50/Changes --- old/Test-Class-0.48/Changes 2014-11-07 01:49:12.000000000 +0100 +++ new/Test-Class-0.50/Changes 2015-06-07 02:07:24.000000000 +0200 @@ -1,5 +1,15 @@ Changes for Perl extension Test-Class +0.50 [2015-06-07] + - add links to Ovid's tutorial series on Test::Class (Tim Vroom, PR#19) + - add links to Test::Class::Most, Test::Class::Moose (Tim Vroom, PR#20) + - list some distributions that use Test::Class in their test suite (Tim + Vroom, PR#21) + - update documentation about running individual tests (Matthew Horsfall, + PR#22) + - fix some tests to work with the new Test::Stream (Chad Granum, PR#27) + - switch packaging to ExtUtils::MakeMaker + 0.48 [2014-11-06] - replace a few bare evals with more modern alternatives diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Class-0.48/MANIFEST new/Test-Class-0.50/MANIFEST --- old/Test-Class-0.48/MANIFEST 2014-11-07 01:49:12.000000000 +0100 +++ new/Test-Class-0.50/MANIFEST 2015-06-07 02:07:59.000000000 +0200 @@ -1,10 +1,9 @@ -Build.PL Changes lib/Test/Class.pm lib/Test/Class/Load.pm lib/Test/Class/MethodInfo.pm Makefile.PL -MANIFEST This list of files +MANIFEST META.json META.yml README diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Class-0.48/META.json new/Test-Class-0.50/META.json --- old/Test-Class-0.48/META.json 2014-11-07 01:49:12.000000000 +0100 +++ new/Test-Class-0.50/META.json 2015-06-07 02:08:03.000000000 +0200 @@ -1,10 +1,10 @@ { "abstract" : "Easily create test classes in an xUnit/JUnit style", "author" : [ - "Adrian Howard <adri...@quietstars.com>, Curtis \"Ovid\" Poe, <ovid at cpan.org>, Mark Morgan <makk...@gmail.com>." + "Adrian Howard <adri...@quietstars.com>, Curtis \"Ovid\" Poe, <ovid at cpan.org>, Mark Morgan <makk...@gmail.com>" ], "dynamic_config" : 1, - "generated_by" : "Module::Build version 0.421", + "generated_by" : "ExtUtils::MakeMaker version 7.052, CPAN::Meta::Converter version 2.150004", "license" : [ "perl_5" ], @@ -13,10 +13,19 @@ "version" : "2" }, "name" : "Test-Class", + "no_index" : { + "directory" : [ + "t", + "inc" + ] + }, "prereqs" : { + "build" : { + "requires" : {} + }, "configure" : { "requires" : { - "Module::Build" : "0.4004" + "ExtUtils::MakeMaker" : "0" } }, "runtime" : { @@ -30,7 +39,7 @@ "Storable" : "2.04", "Test::Builder" : "0.78", "Test::Builder::Tester" : "1.02", - "Test::Simple" : "1.001002", + "Test::Simple" : "0.78", "Try::Tiny" : "0", "constant" : "0", "perl" : "5.008001", @@ -50,28 +59,38 @@ } } }, - "provides" : { - "Test::Class" : { - "file" : "lib/Test/Class.pm", - "version" : "0.48" - }, - "Test::Class::Load" : { - "file" : "lib/Test/Class/Load.pm", - "version" : "0.48" - }, - "Test::Class::MethodInfo" : { - "file" : "lib/Test/Class/MethodInfo.pm", - "version" : "0.48" - } - }, "release_status" : "stable", "resources" : { - "license" : [ - "http://dev.perl.org/licenses/" - ], + "bugtracker" : { + "mailto" : "bug-test-cl...@rt.cpan.org", + "web" : "https://rt.cpan.org/Public/Dist/Display.html?Name=Test-Class" + }, "repository" : { - "url" : "http://github.com/adrianh/test-class/" + "type" : "git", + "url" : "https://github.com/adrianh/test-class.git", + "web" : "https://github.com/adrianh/test-class" } }, - "version" : "0.48" + "version" : "0.50", + "x_IRC" : "irc://irc.perl.org/#perl-qa", + "x_MailingList" : "http://lists.perl.org/list/perl-qa.html", + "x_contributors" : [ + "Adrian Howard <adri...@quietstars.com>", + "Karen Etheridge <et...@cpan.org>", + "Curtis Poe <o...@cpan.org>", + "makk384 <makk...@gmail.com>", + "Ricardo Signes <r...@cpan.org>", + "Alexandr Ciornii <alexcho...@gmail.com>", + "Tim Vroom <vr...@blockstackers.com>", + "Matthew Horsfall <wolfs...@gmail.com>", + "Michael G. Schwern <schw...@pobox.com>", + "Chad Granum <exodi...@gmail.com>", + "Peter Sergeant <p...@clueball.com>", + "Sam Kington <git...@illuminated.co.uk>", + "Klaus S. Madsen <k...@jobindex.dk>", + "Zefram <zef...@fysh.org>", + "Kent Fredric <kentfred...@gmail.com>" + ], + "x_serialization_backend" : "JSON::PP version 2.27300" } + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Class-0.48/META.yml new/Test-Class-0.50/META.yml --- old/Test-Class-0.48/META.yml 2014-11-07 01:49:12.000000000 +0100 +++ new/Test-Class-0.50/META.yml 2015-06-07 02:08:03.000000000 +0200 @@ -1,7 +1,7 @@ --- abstract: 'Easily create test classes in an xUnit/JUnit style' author: - - 'Adrian Howard <adri...@quietstars.com>, Curtis "Ovid" Poe, <ovid at cpan.org>, Mark Morgan <makk...@gmail.com>.' + - 'Adrian Howard <adri...@quietstars.com>, Curtis "Ovid" Poe, <ovid at cpan.org>, Mark Morgan <makk...@gmail.com>' build_requires: Fcntl: '0' IO::File: '1.09' @@ -11,24 +11,18 @@ base: '0' overload: '0' configure_requires: - Module::Build: '0.4004' + ExtUtils::MakeMaker: '0' dynamic_config: 1 -generated_by: 'Module::Build version 0.421, CPAN::Meta::Converter version 2.142690' +generated_by: 'ExtUtils::MakeMaker version 7.052, CPAN::Meta::Converter version 2.150004' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: '1.4' name: Test-Class -provides: - Test::Class: - file: lib/Test/Class.pm - version: '0.48' - Test::Class::Load: - file: lib/Test/Class/Load.pm - version: '0.48' - Test::Class::MethodInfo: - file: lib/Test/Class/MethodInfo.pm - version: '0.48' +no_index: + directory: + - t + - inc requires: Attribute::Handlers: '0.77' Carp: '0' @@ -39,13 +33,33 @@ Storable: '2.04' Test::Builder: '0.78' Test::Builder::Tester: '1.02' - Test::Simple: '1.001002' + Test::Simple: '0.78' Try::Tiny: '0' constant: '0' perl: '5.008001' strict: '0' warnings: '0' resources: - license: http://dev.perl.org/licenses/ - repository: http://github.com/adrianh/test-class/ -version: '0.48' + bugtracker: https://rt.cpan.org/Public/Dist/Display.html?Name=Test-Class + repository: https://github.com/adrianh/test-class.git +version: '0.50' +x_IRC: irc://irc.perl.org/#perl-qa +x_MailingList: http://lists.perl.org/list/perl-qa.html +x_contributors: + - 'Adrian Howard <adri...@quietstars.com>' + - 'Karen Etheridge <et...@cpan.org>' + - 'Curtis Poe <o...@cpan.org>' + - 'makk384 <makk...@gmail.com>' + - 'Ricardo Signes <r...@cpan.org>' + - 'Alexandr Ciornii <alexcho...@gmail.com>' + - 'Tim Vroom <vr...@blockstackers.com>' + - 'Matthew Horsfall <wolfs...@gmail.com>' + - 'Michael G. Schwern <schw...@pobox.com>' + - 'Chad Granum <exodi...@gmail.com>' + - 'Peter Sergeant <p...@clueball.com>' + - 'Sam Kington <git...@illuminated.co.uk>' + - 'Klaus S. Madsen <k...@jobindex.dk>' + - 'Zefram <zef...@fysh.org>' + - 'Kent Fredric <kentfred...@gmail.com>' +x_serialization_backend: 'CPAN::Meta::YAML version 0.016' + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Class-0.48/Makefile.PL new/Test-Class-0.50/Makefile.PL --- old/Test-Class-0.48/Makefile.PL 2014-11-07 01:49:12.000000000 +0100 +++ new/Test-Class-0.50/Makefile.PL 2015-06-07 01:58:40.000000000 +0200 @@ -1,28 +1,143 @@ -# Note: this file was auto-generated by Module::Build::Compat version 0.4210 +use strict; +use warnings; require 5.008001; use ExtUtils::MakeMaker; -WriteMakefile -( - 'NAME' => 'Test::Class', - 'VERSION_FROM' => 'lib/Test/Class.pm', - 'PREREQ_PM' => { - 'Attribute::Handlers' => '0.77', - 'Carp' => '0', - 'File::Find' => '0', - 'File::Spec' => '0', - 'MRO::Compat' => '0.11', - 'Module::Runtime' => '0', - 'Storable' => '2.04', - 'Test::Builder' => '0.78', - 'Test::Builder::Tester' => '1.02', - 'Test::Simple' => '1.001002', - 'Try::Tiny' => '0', - 'constant' => '0', - 'strict' => '0', - 'warnings' => '0' - }, - 'INSTALLDIRS' => 'site', - 'EXE_FILES' => [], - 'PL_FILES' => {} -) -; + +my $developer = -f '.gitignore'; +ExtUtils::MakeMaker->VERSION(6.98) if $developer; + +my %WriteMakefileArgs = ( + NAME => 'Test::Class', + VERSION_FROM => 'lib/Test/Class.pm', + ABSTRACT_FROM => 'lib/Test/Class.pm', + AUTHOR => 'Adrian Howard <adri...@quietstars.com>, Curtis "Ovid" Poe, <ovid at cpan.org>, Mark Morgan <makk...@gmail.com>', + LICENSE => 'perl_5', + + META_MERGE => { + 'meta-spec' => { version => 2 }, + dynamic_config => 1, + resources => { + repository => { + url => 'https://github.com/adrianh/test-class.git', + web => 'https://github.com/adrianh/test-class', + type => 'git', + }, + bugtracker => { + mailto => 'bug-test-cl...@rt.cpan.org', + web => 'https://rt.cpan.org/Public/Dist/Display.html?Name=Test-Class', + }, + }, + x_contributors => [ # manually added, from git shortlog -e -s -n + 'Adrian Howard <adri...@quietstars.com>', + 'Karen Etheridge <et...@cpan.org>', + 'Curtis Poe <o...@cpan.org>', + 'makk384 <makk...@gmail.com>', + 'Ricardo Signes <r...@cpan.org>', + 'Alexandr Ciornii <alexcho...@gmail.com>', + 'Tim Vroom <vr...@blockstackers.com>', + 'Matthew Horsfall <wolfs...@gmail.com>', + 'Michael G. Schwern <schw...@pobox.com>', + 'Chad Granum <exodi...@gmail.com>', + 'Peter Sergeant <p...@clueball.com>', + 'Sam Kington <git...@illuminated.co.uk>', + 'Klaus S. Madsen <k...@jobindex.dk>', + 'Zefram <zef...@fysh.org>', + 'Kent Fredric <kentfred...@gmail.com>', + ], + x_MailingList => 'http://lists.perl.org/list/perl-qa.html', + x_IRC => 'irc://irc.perl.org/#perl-qa', + }, + + META_ADD => { + prereqs => { + configure => { + requires => { + 'ExtUtils::MakeMaker' => '0', + }, + }, + runtime => { + requires => { + 'perl' => '5.008001', + 'Attribute::Handlers' => '0.77', + 'MRO::Compat' => '0.11', + 'Storable' => '2.04', + 'Test::Simple' => '0.78', + 'Test::Builder' => '0.78', + 'Test::Builder::Tester' => '1.02', + 'Carp' => '0', + 'File::Find' => '0', + 'File::Spec' => '0', + 'constant' => '0', + 'strict' => '0', + 'warnings' => '0', + 'Try::Tiny' => '0', + 'Module::Runtime' => '0', + }, + }, + test => { + requires => { + 'Test::Exception' => '0.25', + 'IO::File' => '1.09', + 'Test::More' => '0.78', + 'Fcntl' => '0', + 'Test' => '0', + 'base' => '0', + 'overload' => '0', + }, + }, + }, + }, +); + +my $eumm_version = eval $ExtUtils::MakeMaker::VERSION; + +for (qw(configure build test runtime)) { + my $key = $_ eq 'runtime' ? 'PREREQ_PM' : uc $_.'_REQUIRES'; + next unless exists $WriteMakefileArgs{META_ADD}{prereqs}{$_} + or exists $WriteMakefileArgs{$key}; + my $r = $WriteMakefileArgs{$key} = { + %{$WriteMakefileArgs{META_ADD}{prereqs}{$_}{requires} || {}}, + %{delete $WriteMakefileArgs{$key} || {}}, + }; + defined $r->{$_} or delete $r->{$_} for keys %$r; +} + +# dynamic prereqs get added here. + +# 0.99 broke test_out with qr// +$WriteMakefileArgs{PREREQ_PM}{'Test::Builder'} = '1.001002' + if eval { require Test::Builder; Test::Builder->VERSION eq '0.99' }; + +$WriteMakefileArgs{MIN_PERL_VERSION} = delete $WriteMakefileArgs{PREREQ_PM}{perl} || 0; + +die 'attention developer: you need to do a sane meta merge here!' + if keys %{$WriteMakefileArgs{BUILD_REQUIRES}}; + +$WriteMakefileArgs{BUILD_REQUIRES} = { + %{$WriteMakefileArgs{BUILD_REQUIRES} || {}}, + %{delete $WriteMakefileArgs{TEST_REQUIRES}} +} if $eumm_version < 6.63_03; + +$WriteMakefileArgs{PREREQ_PM} = { + %{$WriteMakefileArgs{PREREQ_PM}}, + %{delete $WriteMakefileArgs{BUILD_REQUIRES}} +} if $eumm_version < 6.55_01; + +delete $WriteMakefileArgs{CONFIGURE_REQUIRES} + if $eumm_version < 6.51_03; + +delete $WriteMakefileArgs{MIN_PERL_VERSION} + if $eumm_version < 6.48; + +delete @WriteMakefileArgs{qw(META_ADD META_MERGE)} + if $eumm_version < 6.46; + +delete $WriteMakefileArgs{LICENSE} + if $eumm_version < 6.31; + +WriteMakefile(%WriteMakefileArgs); + +use Config; +system("$Config{bin}/pod2text $WriteMakefileArgs{VERSION_FROM} > README") + if $developer + and (not -e 'README' or (stat('README'))[9] < (stat($WriteMakefileArgs{VERSION_FROM}))[9]); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Class-0.48/README new/Test-Class-0.50/README --- old/Test-Class-0.48/README 2014-11-07 01:49:12.000000000 +0100 +++ new/Test-Class-0.50/README 2015-06-07 01:47:11.000000000 +0200 @@ -1,6 +1,9 @@ NAME Test::Class - Easily create test classes in an xUnit/JUnit style +VERSION + version 0.50 + SYNOPSIS package Example::Test; use base qw(Test::Class); @@ -302,7 +305,7 @@ # runs all the tests in $o1 and $o2 $o1->runtests($o2); - Since, by definition, the base Test::Class has no tests you could also + Since, by definition, the base Test::Class has no tests, you could also have written: my $o1 = Example::Test->new; @@ -341,8 +344,8 @@ expected_tests() to find out the number of tests a class/object is expected to run. - Since runtests() will not output a test plan if one has already been set - the previous example can be written as: + Since runtests() will not output a test plan if one has already been + set, the previous example can be written as: plan tests => Test::Class->expected_tests(+2); Test::Class->runtests; @@ -455,8 +458,8 @@ setup and shutdown methods are also skipped. Since startup methods will usually be creating state needed by all the - other test methods an exception within a startup method will prevent all - other test methods of that class running. + other test methods, an exception within a startup method will prevent + all other test methods of that class running. RETURNING EARLY If a test method returns before it has run all of its tests, by default @@ -598,7 +601,7 @@ Test::Class allows us to state explicitly that we are adding tests to an existing method by using the "+" prefix. Since we are adding a single - test to "check_fields" it can be rewritten as: + test to "check_fields", it can be rewritten as: sub check_fields : Test(+1) { my $self = shift; @@ -692,6 +695,9 @@ See the add_testinfo method for more details. + Additionally, if you've forgotten to enable warnings and have two test + subs called the same thing, you will get the same error. + GENERAL FILTERING OF TESTS The use of $ENV{TEST_METHOD} to run just a subset of tests is useful, but sometimes it doesn't give the level of granularity that you desire. @@ -802,7 +808,7 @@ are copied into the new object. Any key/value pairs passed to "new" override those in the original object if duplicates occur. - Since the test object is passed to every test method as it runs it + Since the test object is passed to every test method as it runs, it is a convenient place to store test fixtures. For example: sub make_fixture : Test(setup) { @@ -1204,7 +1210,7 @@ In Test::Class setup, test and teardown methods are marked explicitly using the Test attribute. Since we need to know the total - number of tests to provide a test plan for Test::Harness we also + number of tests to provide a test plan for Test::Harness, we also state how many tests each method runs. Unlike JUnit you can have multiple setup/teardown methods in a @@ -1214,7 +1220,7 @@ Test::Class also does the work that would be done by TestSuite in JUnit. - Since the methods are marked with attributes Test::Class knows what + Since the methods are marked with attributes, Test::Class knows what is and isn't a test method. This allows it to run all the test methods without having the developer create a suite manually, or use reflection to dynamically determine the test methods by name. See @@ -1223,8 +1229,7 @@ The running order of the test methods is fixed in Test::Class. Methods are executed in alphabetical order. - Unlike JUnit, Test::Class currently does not allow you to run - individual test methods. + To run individual test methods, see "RUNNING INDIVIDUAL TESTS". Class TestRunner Test::Harness does the work of the TestRunner in JUnit. It collects @@ -1348,6 +1353,15 @@ Test::Class::Load Simple way to load "Test::Class" classes automatically. + Test::Class::Most + Test::Class with additional conveniences to reduce need for some + boilerplate code. Also makes Test::Most testing functions available. + + Test::Class::Moose + Testing framework allows you to write your tests in Moose and test + Moose and non-Moose code. It offers reporting, extensibility, test + inheritance, parallel testing and more. + <http://del.icio.us/tag/Test::Class> Delicious links on Test::Class. @@ -1361,6 +1375,23 @@ Includes the article "Test-Driven Development in Perl" by Piers Cawley that uses Test::Class. + Test::Class Tutorial series written by Curtis "Ovid" Poe + + * <http://www.modernperlbooks.com/mt/2009/03/organizing-test-suite + s-with-testclass.html> + + * <http://www.modernperlbooks.com/mt/2009/03/reusing-test-code-wit + h-testclass.html> + + * <http://www.modernperlbooks.com/mt/2009/03/making-your-testing-l + ife-easier.html> + + * <http://www.modernperlbooks.com/mt/2009/03/using-test-control-me + thods-with-testclass.html> + + * <http://www.modernperlbooks.com/mt/2009/03/working-with-testclas + s-test-suites.html> + Test::Builder Support module for building test libraries. @@ -1382,11 +1413,11 @@ The following modules use Test::Class as part of their test suite. You might want to look at them for usage examples: - Aspect, Bricolage (<http://www.bricolage.cc/>), - Class::StorageFactory, CGI::Application::Search, DBIx::Romani, - Xmldoom, Object::Relational, File::Random, + App-GitGot, Aspect, Bricolage (<http://www.bricolage.cc/>), CHI, + Cinnamon, Class::StorageFactory, CGI::Application::Search, + DBIx::Romani, Xmldoom, Object::Relational, File::Random, Geography::JapanesePrefectures, Google::Adwords, Merge::HashRef, - PerlBuildSystem, Pixie, Yahoo::Marketing, and XUL-Node + PerlBuildSystem, Ubic, Pixie, Yahoo::Marketing, and XUL-Node The following modules are not based on Test::Builder, but may be of interest as alternatives to Test::Class. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Class-0.48/lib/Test/Class/Load.pm new/Test-Class-0.50/lib/Test/Class/Load.pm --- old/Test-Class-0.48/lib/Test/Class/Load.pm 2014-11-07 01:49:12.000000000 +0100 +++ new/Test-Class-0.50/lib/Test/Class/Load.pm 2015-06-07 01:04:18.000000000 +0200 @@ -8,7 +8,7 @@ use File::Spec; use Module::Runtime 'require_module'; -our $VERSION = '0.48'; +our $VERSION = '0.50'; # Override to get your own filter sub is_test_class { @@ -67,6 +67,10 @@ Test::Class::Load - Load C<Test::Class> classes automatically. +=head1 VERSION + +version 0.50 + =head1 SYNOPSIS use Test::Class::Load qw(t/tests t/lib); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Class-0.48/lib/Test/Class/MethodInfo.pm new/Test-Class-0.50/lib/Test/Class/MethodInfo.pm --- old/Test-Class-0.48/lib/Test/Class/MethodInfo.pm 2014-11-07 01:49:12.000000000 +0100 +++ new/Test-Class-0.50/lib/Test/Class/MethodInfo.pm 2015-06-07 01:04:18.000000000 +0200 @@ -4,7 +4,7 @@ package Test::Class::MethodInfo; use Carp; -our $VERSION = '0.48'; +our $VERSION = '0.50'; sub new { my ( $class, %param ) = @_; @@ -55,6 +55,10 @@ Test::Class::MethodInfo - the info associated with a test method +=head1 VERSION + +version 0.50 + =head1 SYNOPSIS # Secret internal class diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Class-0.48/lib/Test/Class.pm new/Test-Class-0.50/lib/Test/Class.pm --- old/Test-Class-0.48/lib/Test/Class.pm 2014-11-07 01:49:12.000000000 +0100 +++ new/Test-Class-0.50/lib/Test/Class.pm 2015-06-07 01:04:18.000000000 +0200 @@ -12,7 +12,7 @@ use Test::Class::MethodInfo; use Try::Tiny; -our $VERSION = '0.48'; +our $VERSION = '0.50'; my $Check_block_has_run; { @@ -357,7 +357,7 @@ } sub runtests { - die "Test::Class was loaded too late (after the CHECK block was run). See 'A NOTE ON LOADING TEST CLASSES' in perldoc Test::Class for more details\n" + die "Test::Class was loaded too late (after the CHECK block was run), or you may have redefined a test_ sub. See 'A NOTE ON LOADING TEST CLASSES' in perldoc Test::Class for more details\n" unless $Check_block_has_run; my @tests = @_; if (@tests == 1 && !ref($tests[0])) { @@ -484,6 +484,10 @@ Test::Class - Easily create test classes in an xUnit/JUnit style +=head1 VERSION + +version 0.50 + =head1 SYNOPSIS package Example::Test; @@ -777,7 +781,7 @@ # runs all the tests in $o1 and $o2 $o1->runtests($o2); -Since, by definition, the base Test::Class has no tests you could also have written: +Since, by definition, the base Test::Class has no tests, you could also have written: my $o1 = Example::Test->new; my $o2 = Another::Test->new; @@ -805,7 +809,7 @@ If you prefer to write your test plan explicitly you can use L<expected_tests()|/"expected_tests"> to find out the number of tests a class/object is expected to run. -Since L<runtests()|/"runtests"> will not output a test plan if one has already been set the previous example can be written as: +Since L<runtests()|/"runtests"> will not output a test plan if one has already been set, the previous example can be written as: plan tests => Test::Class->expected_tests(+2); Test::Class->runtests; @@ -922,7 +926,7 @@ If the setup method of a test method dies, then all of the remaining setup and shutdown methods are also skipped. -Since startup methods will usually be creating state needed by all the other test methods an exception within a startup method will prevent all other test methods of that class running. +Since startup methods will usually be creating state needed by all the other test methods, an exception within a startup method will prevent all other test methods of that class running. =head1 RETURNING EARLY @@ -1045,7 +1049,7 @@ While the above works, the total number of tests for the method is dependent on the number of tests in its C<SUPER::check_fields>. If we add a test to C<Pig::Test-E<gt>check_fields> we will also have to update the number of tests of C<NamedPig::test-E<gt>check_fields>. -Test::Class allows us to state explicitly that we are adding tests to an existing method by using the C<+> prefix. Since we are adding a single test to C<check_fields> it can be rewritten as: +Test::Class allows us to state explicitly that we are adding tests to an existing method by using the C<+> prefix. Since we are adding a single test to C<check_fields>, it can be rewritten as: sub check_fields : Test(+1) { my $self = shift; @@ -1136,6 +1140,8 @@ See the L<add_testinfo|/"add_testinfo"> method for more details. +Additionally, if you've forgotten to enable warnings and have two test subs called the same thing, you will get the same error. + =head1 GENERAL FILTERING OF TESTS The use of $ENV{TEST_METHOD} to run just a subset of tests is useful, but @@ -1253,7 +1259,7 @@ If called as an object method the existing object's key/value pairs are copied into the new object. Any key/value pairs passed to C<new> override those in the original object if duplicates occur. -Since the test object is passed to every test method as it runs it is a convenient place to store test fixtures. For example: +Since the test object is passed to every test method as it runs, it is a convenient place to store test fixtures. For example: sub make_fixture : Test(setup) { my $self = shift; @@ -1605,7 +1611,7 @@ Test::Class corresponds to TestCase in JUnit. -In Test::Class setup, test and teardown methods are marked explicitly using the L<Test|/"Test"> attribute. Since we need to know the total number of tests to provide a test plan for L<Test::Harness> we also state how many tests each method runs. +In Test::Class setup, test and teardown methods are marked explicitly using the L<Test|/"Test"> attribute. Since we need to know the total number of tests to provide a test plan for L<Test::Harness>, we also state how many tests each method runs. Unlike JUnit you can have multiple setup/teardown methods in a class. @@ -1613,11 +1619,11 @@ Test::Class also does the work that would be done by TestSuite in JUnit. -Since the methods are marked with attributes Test::Class knows what is and isn't a test method. This allows it to run all the test methods without having the developer create a suite manually, or use reflection to dynamically determine the test methods by name. See the L<runtests()|/"runtests"> method for more details. +Since the methods are marked with attributes, Test::Class knows what is and isn't a test method. This allows it to run all the test methods without having the developer create a suite manually, or use reflection to dynamically determine the test methods by name. See the L<runtests()|/"runtests"> method for more details. The running order of the test methods is fixed in Test::Class. Methods are executed in alphabetical order. -Unlike JUnit, Test::Class currently does not allow you to run individual test methods. +To run individual test methods, see L</"RUNNING INDIVIDUAL TESTS">. =item B<Class TestRunner> @@ -1774,6 +1780,14 @@ Simple way to load "Test::Class" classes automatically. +=item L<Test::Class::Most> + +Test::Class with additional conveniences to reduce need for some boilerplate code. Also makes L<Test::Most> testing functions available. + +=item L<Test::Class::Moose> + +Testing framework allows you to write your tests in Moose and test Moose and non-Moose code. It offers reporting, extensibility, test inheritance, parallel testing and more. + =item L<http://del.icio.us/tag/Test::Class> Delicious links on Test::Class. @@ -1790,6 +1804,22 @@ Includes the article "Test-Driven Development in Perl" by Piers Cawley that uses Test::Class. +=item Test::Class Tutorial series written by Curtis "Ovid" Poe + +=over 4 + +=item * L<http://www.modernperlbooks.com/mt/2009/03/organizing-test-suites-with-testclass.html> + +=item * L<http://www.modernperlbooks.com/mt/2009/03/reusing-test-code-with-testclass.html> + +=item * L<http://www.modernperlbooks.com/mt/2009/03/making-your-testing-life-easier.html> + +=item * L<http://www.modernperlbooks.com/mt/2009/03/using-test-control-methods-with-testclass.html> + +=item * L<http://www.modernperlbooks.com/mt/2009/03/working-with-testclass-test-suites.html> + +=back + =item L<Test::Builder> Support module for building test libraries. @@ -1820,7 +1850,7 @@ =over 4 -L<Aspect>, Bricolage (L<http://www.bricolage.cc/>), L<Class::StorageFactory>, L<CGI::Application::Search>, L<DBIx::Romani>, L<Xmldoom>, L<Object::Relational>, L<File::Random>, L<Geography::JapanesePrefectures>, L<Google::Adwords>, L<Merge::HashRef>, L<PerlBuildSystem>, L<Pixie>, L<Yahoo::Marketing>, and L<XUL-Node> +L<App-GitGot>, L<Aspect>, Bricolage (L<http://www.bricolage.cc/>), L<CHI>, L<Cinnamon>, L<Class::StorageFactory>, L<CGI::Application::Search>, L<DBIx::Romani>, L<Xmldoom>, L<Object::Relational>, L<File::Random>, L<Geography::JapanesePrefectures>, L<Google::Adwords>, L<Merge::HashRef>, L<PerlBuildSystem>, L<Ubic>, L<Pixie>, L<Yahoo::Marketing>, and L<XUL-Node> =back diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Class-0.48/t/fail2.t new/Test-Class-0.50/t/fail2.t --- old/Test-Class-0.48/t/fail2.t 2014-11-07 01:49:12.000000000 +0100 +++ new/Test-Class-0.50/t/fail2.t 2015-06-07 01:04:18.000000000 +0200 @@ -28,10 +28,9 @@ test_out(qr/not ok 1 - (?:The $identifier|undef) isa '?Object'?\n/); test_out("not ok 2 - cannot create Objects"); test_fail(-12); -test_err( $_ ) for $INC{'Test/Stream.pm'} - ? (qr/#\s+(?:The $identifier|undef) isn't defined\n/, "# (in Object::Test->_test_new)") - : ("# (in Object::Test->_test_new)", qr/#\s+(?:The $identifier|undef) isn't defined\n/); -test_fail(-16); +test_err( "# (in Object::Test->_test_new)" ); +test_err(qr/#\s+(?:The $identifier|undef) isn't defined\n/); +test_fail(-15); test_err( "# (in Object::Test->_test_new)" ); Object::Test->runtests; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Class-0.48/t/runtests_die.t new/Test-Class-0.50/t/runtests_die.t --- old/Test-Class-0.48/t/runtests_die.t 2014-11-07 01:49:12.000000000 +0100 +++ new/Test-Class-0.50/t/runtests_die.t 2015-06-07 01:04:18.000000000 +0200 @@ -25,11 +25,10 @@ test_out( qr/not ok 1 - (?:The $identifier|undef) isa '?Object'?\n/); test_err( "# Failed test ($filename at line 15)"); -test_err( $_ ) for $INC{'Test/Stream.pm'} - ? (qr/# (?:The $identifier|undef) isn't defined\n/, "# (in Foo->test_object)") - : ("# (in Foo->test_object)", qr/# (?:The $identifier|undef) isn't defined\n/); +test_err( "# (in Foo->test_object)" ); +test_err( qr/# (?:The $identifier|undef) isn't defined\n/); test_out( "not ok 2 - test_object died (could not create object)"); -test_err("# Failed test ($filename at line 34)"); -test_err("# (in Foo->test_object)"); +test_err( "# Failed test ($filename at line 33)"); +test_err( "# (in Foo->test_object)" ); Foo->runtests; test_test("early die handled"); ++++++ cpanspec.yml ++++++ --- #description_paragraphs: 3 #no_testing: broken upstream #sources: # - source1 # - source2 #patches: # foo.patch: -p1 # bar.patch: #preamble: |- # BuildRequires: gcc-c++ #post_prep: |- # hunspell=`pkg-config --libs hunspell | sed -e 's,-l,,; s, *,,g'` # sed -i -e "s,hunspell-X,$hunspell," t/00-prereq.t Makefile.PL #post_install: |- # sed on %{name}.files #license: SUSE-NonFree #skip_noarch: 1 #custom_build: |- #./Build build flags=%{?_smp_mflags} --myflag #custom_test: |- #startserver && make test #ignore_requires: Bizarre::Module