Revision history for Perl distribution Test-Class-Moose 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