Revision history for Perl distribution Test-Class-Moose
0.99 2021-02-07
[ENHANCEMENTS]
* Greatly expanded documentation for the test control methods.
[BUG FIXES]
* Fixed a bug in the method report's `has_tag` method. This would die no
matter how it was called. Fixed by Iain Loasby. Fixes GH #109. GH #110.
0.98 2019-10-26
[BUG FIXES]
* Escape the directory name when using it in regex while loading files in
Test::Class::Moose::Load. Paths with special characters were not loading
modules properly. Fixed by jrubinator. GH #101.
0.97 2019-04-21
[BUG FIXES]
* Require Test2 1.302118, not 1.1302118 (note the extra 1 after the
decimal). Fixed by Christopher Layne. GH #99.
0.96 2018-12-21
[ENHANCEMENTS]
* Converted uses of JSON.pm to JSON::MaybeXS. Implemented by Karen
Etheridge. PR #98.
0.95 2018-11-03
[ENHANCEMENTS]
* The CLI class/role now accepts a --test-lib-dirs option. This lets you
tell it what directories contain test classes from the CLI.
0.94 2018-08-18
[BUG FIXES]
* Replace all cases of "use 5.10.0" with "use 5.010000". The former was
causing some versions of Perl to emit warnings that cause tests to fail.
0.93 2018-08-14
[ENHANCEMENTS]
* The CLI class (and role) now allow you to pass a directory for the
--classes option. This directory is searched recursively for classes to be
loaded. Based on a feature request from jrubinator. GH #91.
[BUG FIXES]
* Extending a TCM class with a non-existing or non-TCM class now delivers a
fatal error instead of silently ignoring the test class. Implemented by
Harald Jörg. PR #93, fixes GH #70.
0.92 2017-12-23
[ENHANCEMENTS]
* Added a new "executor_roles" parameter to the Test::Class::Moose::Runner
constructor. This allows you to apply roles to the executor (the object
which executes test classes) as a way to extend the default TCM
behavior. See the documentation for Test::Class::Moose::Role::Executor for
methods which you can wrap.
[BACKWARDS INCOMPATIBILITIES]
* Removed the never-documented Test::Class::Moose::Report's is_parallel
attribute. This was present because in older versions of TCM, reporting
was broken when tests were run in parallel.
0.91 2017-12-07
[BUG FIXES]
* Use sum0 instead of sum in the num_test_instances() method for the report
object. Fixed by Larry Leszczynski. GH #87.
0.90 2017-11-28
[BUG FIXES]
* Require Test2 1.1302118 per Chad Granum's recommendation. This version
includes some fixes for bugs that could cause tests to hang.
0.89 2017-11-19
[ENHANCEMENTS]
* Moved the check for bad class names in Test::Class::Moose::Role::Executor
to its own method to facilitate overriding just that portion of the
role. Based on PR #85 from Chuck Adams, and addresses #84.
0.88 2017-11-04
[BUG FIXES]
- When no tests were run, the num_tests_run() method for the report object
would return undef instead of 0. Reported by Johan Lindstrom. GH #83.
0.87 2017-09-12
[BUG FIXES]
* Fixed link to the TCM home page in the docs. Fixed by Paul Williams. GH
#82.
0.86 2017-09-05
[BUG FIXES]
* The change to add start_time and end_time methods to all reports
completely broke timing data, so all tests reported taking essentially
zero time. Reported by Andy Armstrong. GH #81.
0.85 2017-07-29
[ENHANCEMENTS]
* All report objects now have start_time and end_time methods.
* Added support for the "bare => 1" import option to
Test::Class::Moose::Role. Implemented by Desmond Daignault. PR #80.
0.84 2017-05-15
[ENHANCEMENTS]
* Make it possible to disable the progress output shown when running tests
in parallel. This does not play nicely with things like
TAP::Harness::Archive and prove's --merge flag. The output ends up
interleaved with test output, breaking the TAP.
0.83 2017-05-10
[ENHANCEMENTS]
* Test::Most is only loaded if you do not pass "bare => 1" when importing
Test::Class::Moose.
[BUG FIXES]
* The CLI implementation released in 0.82 was broken in regards to the
--classes parameter. This would not actually load the specified classes at
all, because the test lib dirs were not being added to @INC.
0.82 2017-04-05
[ENHANCEMENTS]
* Added a Test::Class::Moose::CLI class. This provides a ready-to-go
interface for handling CLI parameters passed to the test file that runs
your Test::Class::Moose tests. This lets you do things like run "prove -lv
t/tcm.t :: --classes TestFor::My::Thing" without having to write your own
code to handle this.
This new CLI class is entirely implemented by a role,
Test::Class::Moose::Role::CLI, that has well-documented hooks for you to
write your own CLI class on top of. See the docs for the class and the
role for more details.
0.81 2017-03-16
[ENHANCEMENTS]
* If you pass one or more test class names to the Runner class explicitly
and those classes are either not loaded or not subclasses of
Test::Class::Moose, you'll get a better error message. Previously this
would die with an unhelpful error about missing methods. Reported by Andy
Cunningham with additional clarification from hoppfrosch. GH #57.
0.80 2016-09-25
[BUG FIXES]
* Depend on Test2 1.302059. This version fixes an issue where subtest output
from test methods was not showing up. Reported by Ilya Chesnokov. GH #67.
0.79 2016-09-25
[BACKWARDS INCOMPATIBILITIES]
* The value of Test::Class::Moose::Config->args is no longer passed to the
constructor for each test class instance. This was a holdover from when
Test::Class::Moose was both a parent class for your test classes and the
test class runner. Fixes GH #68. Reported by Noel Maddy.
0.78 2016-08-21
[ENHANCEMENTS]
* Updated the included Test::Class::Moose::Tutorial docs.
0.77 2016-08-21
[BACKWARDS INCOMPATIBILITIES]
* The Test::Class::Moose->runtests backwards compatibility method shim has
been removed. You should be using Test::Class::Moose::Runner to run test
classes.
* The long-deprecated Test::Class::Moose::Role::Parallel role has been
removed. This didn't actually do anything except to tell you to use
Test::Class::Moose::Runner instead.
[DEPRECATIONS]
* The passing of the report object as an argument to test methods and test
control methods is now deprecated. You can get the report from the test
class object itself via the $test->test_report method.
0.76 2016-08-05
[BUG FIXES]
* Require Test::Harness 3.29. Tests fail with earlier versions. Reported by
Andreas Koenig. (GitHub issue #65).
0.75 2016-08-02
* This is the first non-TRIAL release of the "rewrite TCM to use Test2"
work. There are no changes from 0.74. All changes below are a summary of
previous TRIAL release changes.
[BACKWARDS INCOMPATIBILITIES]
* The test_teardown method is no longer run when a test is skipped unless
run_control_methods_on_skip returns a true value. The test_teardown method
was never intended to be run unconditionally.
* Parallel testing now parallelizes test classes rather than individual test
instances. This is only relevant if your test suite contains parameterized
test classes. This is slightly less efficient, but made the internal test
running code much simpler and made it possible to fix reporting for
parallel test runs.
* The Test::Class::Moose::Config->builder method has been removed.
* The Test::Class::Moose::Runner->builder method has been removed.
[ENHANCEMENTS]
* Rewrote the internals of Test::Class::Moose to use Test2 test events. This
led to several changes and cleanups. Notably, parallel testing is now much
simpler and more like sequential testing.
* You can force test_shutdown to run when a class is skipped by having a
class's run_control_methods_on_skip method return true.
* Test reporting works correctly when tests are run in parallel, and the
reports for sequential and parallel runs of the same classes should now be
identical.
* You can now force the test_shutdown method to be run when a class is
skipped by defining a run_test_shutdown_on_skip method in your test class
that returns a true value.
* Test class instances now have a $self->test_instance_name method.
[BUG FIXES]
* Fixed a bug in how test methods were counted. When a test class or method
was entirely skipped by setting $self->test_skip, the method or classes
were still included in the count returned by the report object's
num_test_methods method.
0.74 2016-07-22 (TRIAL RELEASE)
* Last TRIAL release before the Test2 version goes stable unless I receive
reports of problems with this release.
[BACKWARDS INCOMPATIBILITIES]
* The run_test_shutdown_on_skip method is now named
run_control_methods_on_skip and applies to both test_shutdown and
test_teardown.
* The test_teardown method is no longer run when a test is skipped unless
run_control_methods_on_skip returns a true value. The test_teardown method
was never intended to be run unconditionally.
0.73 2016-05-12 (TRIAL RELEASE)
[BUG FIXES]
* Fix a test failure on Windows.
* Attempted to fix context handling so test events have the right traces.
0.72 2016-05-10 (TRIAL RELEASE)
[BACKWARDS INCOMPATIBILITIES]
* Parallel testing now parallelizes test classes rather than individual test
instances. This is only relevant if your test suite contains parameterized
test classes. This is slightly less efficient, but made the internal test
running code much simpler and made it possible to fix reporting for
parallel test runs.
* The Test::Class::Moose::Config->builder method has been removed.
* The Test::Class::Moose::Runner->builder method has been removed.
[ENHANCEMENTS]
* Rewrote the internals of Test::Class::Moose to use Test2 test events. This
led to several changes and cleanups. Notably, parallel testing is now much
simpler and more like sequential testing.
* Test reporting works entirely correctly when tests are run in parallel.
* You can now force the test_shutdown method to be run when a class is
skipped by defining a run_test_shutdown_on_skip method in your test class
that returns a true value.
* Test class instances now have a $self->test_instance_name method.
[BUG FIXES]
* Fixed a bug in how test methods were counted. When a test class or method
was entirely skipped by setting $self->test_skip, the method or classes
were still included in the count returned by the report object's
num_test_methods method.
0.71 2016-05-09
[ENHANCEMENTS]
* If set_process_name is true we update the process name to include
test control method names and test methods as well.
0.70 2016-05-09
[ENHANCEMENTS]
* Added a new configuration parameter for the test runner,
set_process_name. If this is true, then $0 will be updated to
include the test instance name for each test instance as it is run.
0.69 2016-04-28
[BUG FIXES]
* Explicitly load Test::Most in Test::Class::Moose. Earlier versions of
Import::Into would not load this for us, leading to all sorts of
errors. Reported by Philipp Gortan. (GitHub issue #62)
0.68 2016-04-26
[ENHANCEMENTS]
* If you "use Test::Class::Moose bare => 1" you will no longer get
Test::Most exported into your class. Instead, you can load the testing
module(s) of your choice.
0.67 2015-11-30
[ENHANCEMENTS]
* Same as 0.66, but repeating changes from 0.63 since there's a bunch of
them.
* Added a new method to Test::Class::Moose::Report, timing_data. This
returns a complex data structure containing timing data for all levels of
test suite. This is useful if you want to store test run timing data for
later analysis.
* Added a new report object, Test::Class::Moose::Report::Class. Each class
that is tested gets one of these reports. The Class report in turn
contains 1+ Instance reports, which in turn contains 1+ Method reports.
* The TCM::Report::Instance class now has two new methods,
test_startup_method and test_shutdown_method. These methods return
TCM::Report::Method objects with information about these control methods.
* The TCM::Report::Method class now has two new methods, test_setup_method
and test_teardown_method. These methods return TCM::Report::Method objects
with information about these control methods.
[BACKWARDS INCOMPATIBILITIES]
* Removed the Test::Class::Moose::Report::Instance's error
attribute. Contrary to the documentation, this attribute was never
populated.
* Renamed Test::Class::Moose::Report::Method->instance_report method to
instance. This is a better match for other report-related methods, which
don't include a "_report" suffix.
* Removed the long-deprecated tests_run methods from TCM::Report and
TCM::Report::Method.
* Removed the long-deprecated TCM::Report::Method->add_to_plan method.
0.66 2015-11-30 (TRIAL RELEASE)
* On some systems it seems that Benchmark can report negative run
times. We now make sure all times are no less than zero in
Test::Class::Moose::Report::Time.
0.65 2015-11-25 (TRIAL RELEASE)
* Fixed a bug in generating timing data for a test run. If a test
instance is skipped entirely there will not be any timing data for
its test_shutdown method.
0.64 2015-11-25 (TRIAL RELEASE)
* Fixed a bug Test::Class::Moose::Role::HasTimeReport introduced in
the last release. Attempting to get the time for a report on
something that didn't run (because it was skipped) caused an error.
0.63 2015-11-24 (TRIAL RELEASE)
* Added a new method to Test::Class::Moose::Report, timing_data. This
returns a complex data structure containing timing data for all
levels of test suite. This is useful if you want to store test run
timing data for later analysis.
* Added a new report object, Test::Class::Moose::Report::Class. Each
class that is tested gets one of these reports. The Class report in
turn contains 1+ Instance reports, which in turn contains 1+ Method
reports.
* The TCM::Report::Instance class now has two new methods,
test_startup_method and test_shutdown_method. These methods return
TCM::Report::Method objects with information about these control
methods.
* The TCM::Report::Method class now has two new methods,
test_setup_method and test_teardown_method. These methods return
TCM::Report::Method objects with information about these control
methods.
* Removed the Test::Class::Moose::Report::Instance's error
attribute. Contrary to the documentation, this attribute was never
populated.
* Renamed Test::Class::Moose::Report::Method->instance_report method
to instance. This is a better match for other report-related
methods, which don't include a "_report" suffix.
* Removed the long-deprecated tests_run methods from TCM::Report and
TCM::Report::Method.
* Removed the long-deprecated tests_run methods from
TCM::Report::Method->add_to_plan method.
0.62 2015-08-30
* Make Test::Class::Moose::Config load Test::Builder. It used this
module without loading it, which could cause issues if nothing else
loaded it. Fixed by Andy Jack. (GitHub PR #55).
0.61 2015-08-15
* Added a randomize_classes attribute which can be passed to
Test::Class::Moose::Runner. Implemented by Andy Jack. GitHub PR #53.
* Test::Class::Moose::Role now enables strict and warnings in the
caller just like Test::Class::Moose does. GitHub PR #54.
* Documented the current_instance and current_method methods for
Test::Class::Moose::Report. The current_instance method was formerly
named current_class, which is now deprecated, but still
works. Addresses GitHub #51.
* This distro now uses Package::DeprecationManager to generate
deprecation warnings. See Test::Class::Moose::Deprecated for
details.
0.60 2015-07-06
* Doc updates including fixing the bug reporting link and making sure
the CONTRIBUTORS section is up to date.
0.59 2015-07-06
* Allow _constructor_parameter_sets to return an empty
list. Implemented by Philipp Gortan. (GitHub issue #47)
* Error messages when Test::Class::Moose::Load cannot load a module
now include stack traces. (GitHub issue #43)
0.58 2014-09-05
* Add a passed() method to class and method report objects (GitHub issue #30)
* If a test class did not run (such as an abstract class), the time()
method on reports now returns a zero duration time instead of
undef (GitHub issue #34)
0.57 2014-09-02
* Fix the homepage link in the meta info.
0.56 2014-09-02
* This is the first release to include the deprecations and backwards
incompatibilities from 0.55. Please see that release's notes as
well!
* Skip parallel tests on Windows. This may be a bug in
Test::Class::Moose or Parallel::ForkManager, but for now we're
punting. Reported by Alexandr Ciornii. GitHub issue #36.
* Removed Sub::Attribute from the "recommends" list. This is required
now, and listing it as both required and recommends is confusing.
* Lots of doc fixes.
0.55 2014-03-18
* There are a number of deprecations and backwards incompatible
changes in this release!
* Calling runtests() on Test::Class::Moose or a subclass of that class
is now deprecated. Use the new Test::Class::Moose::Runner class
instead.
* The Test::Class::Moose::Role::Parallel role no longer does
anything. You can use the Test::Class::Moose::Runner class to run
tests in parallel by passing a jobs parameter to its
constructor. See the docs for details.
* Parallel testing is now done _per test class instance_ rather than
per method. In other words, each subprocess instantiates a test
class and runs all of its test methods.
* You can now run multiple instances of a test class by using the
Test::Class::Moose::Role::ParameterizedInstances role. See the
Test::Class::Moose docs for details.
* All private methods defined as lexically-scoped variables in
Test::Class::Moose have been made actual methods so that roles and
subclasses can affect them.
* Removed MooseX::ClassAttribute from the list of prereqs in
Makefile.PL. Test::Class::Moose loaded this but never used it.
0.54 2014-03-18
* Update the tutorial for typos and to documents Tests()
* Add the github.io homepage.
0.53 2014-03-15
* Loooong day. The ContributorsFromGit dist::zilla plugin did, indeed,
add all git contributors to the POD, but it deleted all of my other
POD. This might be my record for number of rereleases in a day.
0.52 2014-03-15
* Note in the docs the Sub::Attribute change from version 0.51
* Oops. Remove all of the .bak files from the distro.
* List contributors automatically in docs
0.51 2014-03-15
* Sub::Attribute is now required and not optional.
* Added a Makefile.PL to the dzil distro so people can more easily
contribute.
0.50 2014-03-14
* :Test and :Tests attributes have been added.
* TAP::Stream is now in its own distribution and thus removed from
this one.
* Test::Class::Moose::Role - croak() if preamble doesn't load
(Sebastian Willert)
0.43 2014-01-29
* When running parallel tests, we now output a line of dots to the
screen to show that the test suite hasn't stalled. Further, the dots
are colored "green" and "red" (sorry color blind folk!) just like
Test::Harness, so you can see if tests have passed or failed.
0.42 2014-01-15
* Remove experimental END block causing issues for some test suites.
* Merge Dave Rolsky's MetaJSON request (thanks, Dave!)
* Add better github meta info
* Document recommended test suite instantiation.
* Document what Test::Class::Moose::Role is for.
0.41 2014-01-13
* Fix bug where "skip_all" tests would report as failing if
Sub::Attribute wasn't installed.
0.40 2014-01-12
* Parallel tests now automatically ignore test methods tagged with
'noparallel'.
* Fix bug where sequential tests fail with parallel testing.
* Remove long-deprecated test_reporting() method.
* The second argument to test methods ($report) is now deprecated.
Call $test->test_report instead.
* You can now call has_tag() on a method report object.
0.30 Not Released
* Experimental support for parallel testing. See
Test::Class::Moose::Role::Parallel.
0.22 2013-08-17
* Renamed tutorial from .pod to .pm to stop both cpan and metacpan
from replacing main documentation with the tutorial.
0.21 2013-08-15
* Fold on .t test into t/tags.t. Cleaner and stops some CPAN testers
failures.
0.20 2013-08-15
* Fix bug #87801 where excluded tags were ANDed instead of ORed.
Stefan Corneliu Petrea.
* The beginnings of a tutorial by Doug Bell (preaction)
* Doc fix by Olaf Alders.
* Tag inheritance added by Paul Boyd (see
https://github.com/Ovid/test-class-moose/pull/10). This change is
slightly backwards-incompatible, but not many people were yet using
this module (or tags).
0.12 2013-05-27
* Bugfix: test_classes attribute to constructor is allowed to be
undef or an empty array ref.
* add_to_plan() is now deprecated. Use plan() instead. This solves the
problem where you might also have a before modifier wanting to alter
the plan.
0.11 2013-05-19
* Added the test_classes attribute to the contructor. Allows you to
easily control which classes you wish to run.
0.10 2013-05-08
* Sigh. Skip All tag tests if we can't define tags.
0.09 2013-05-07
* Emergency bug fix: don't require Sub::Attribute if they cannot load
it.
0.08 2013-05-06
* Add tag support.
* Clean up how start and end times for timing is handled.
0.07 2013-04-07
* The $test_suite object now has the time() method.
* Fully document report methods
* Marked a bunch of "trusted" methods as effectively private.
* Rename tests_run() to num_tests_run() (internal consistency)
* Rename test_reporting() to test_report() (test_reporting() is now
deprecated)
* Rename ::Reporting classes to ::Report
* Allow plans in methods. See #84046 in RT queue (Steffen W)
* Convert to Dist::Zilla
* Runtests returns $self.
0.06 2013-03-17
* Fix the MANIFEST again. That's it. After this I'm switching to
Dist::Zilla.
0.05 2013-03-17
* Even if attributes start with test_, they cannot be test methods.
* Add AutoUse to the MANIFEST :/
0.04 2013-03-17
* Fix test inheritance bug.
0.03 2013-03-16
* Add Test::Class::Moose::Role::AutoUse (automatically loads your
actual classes)
0.02 2013-01-29
* Add class/method skipping.
* Rename almost every overrideable method to /^test_/.
* Add a time reporting class. You can now fetch real, user and system
time for each class or test method.
* Fix for errors when no test methods found (they should be skipped -
beresfordt)
* Don't use a bare qw() for parens (reported on github by beresfordt)
* Make sure we have hi-res time reporting
* Move statistics gathering into its own classes
* Add include/exclude test method filtering
* Skip a test class if we don't find any test methods
* Most attributes pushed into Test::Class::Moose::Config
* Added "randomize" attribute per Udo Oji.
0.01 2012-12-18
* Test::Class + Moose