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