Test::More

From Wikipedia, the free encyclopedia

Test::More is a unit testing module for Perl. Created and maintained by Michael G Schwern with help from Barrie Slaymaker, Tony Bowden, chromatic, Fergal Daly and perl-qa.

Original authorMichael G Schwern
DeveloperChad 'Exodist' Granum
Initial releaseApril, 2001
Written inPerl
Quick facts Original author, Developer ...
Test::More
Original authorMichael G Schwern
DeveloperChad 'Exodist' Granum
Initial releaseApril, 2001
Written inPerl
Operating systemCross-platform
Available inEnglish
TypeUnit testing module
LicenseDual-licensed - Artistic License and GPL
Websitehttps://metacpan.org/pod/Test::More
Close

Test::More is a widely used Perl testing module. As of 2010, approximately 80% of all CPAN distributions made use of it.[1]

History

Introduced in 2001 to replace Test.pm, Test::More contributed to changes in testing practices in Perl and was followed by the development of additional testing modules and broader adoption of test-driven practices within the community.

In 2014, Michael Schwern transferred ownership of Test::More and related modules to Chad 'Exodist' Granum.[2] On May 10, 2016, Exodist released version 1.302015,[3][4] which included a complete refactor and partial rewrite of the internals. The new version included major API updates and additional features. Efforts were made to preserve backwards compatibility for third-party tools.[tone]

Functionality

Test::More is not a complete testing framework but can be used with other testing libraries via a shared Test::Builder object. As a result, Test::More provides the baseline testing functions, leaving other libraries to implement more specific functionality. This avoids centralizing development in a single module and supports the use of specialized testing functions.

Test programs written with Test::More output their results as TAP, which can then either be interpreted by a human or, more usually, run through a TAP parser such as Test::Harness.[5] It is this separation between test program and test result interpreter via a common protocol that has enabled the development of multiple testing modules that can be used together. Additionally, the TAP output can be stored and reinterpreted later, providing a historical record of test results.

Among its features are detailed error messages, functions to test regular expressions, functions to test objects, and functions to test complex data structures.[6] It can be used to compare values, such as a computed value to an expected value, or that a value is within an expected range.[7] The number of tests to be executed is listed in the test script.[8]

Tests that are known to fail under specific conditions or environments can be skipped.[6] This may occur if a system on which the test is executed lacks the capability to execute the tested function, or if the test is written in advance of the code.[7]

The module intercepts standard output from the Perl script to execute the tests.[9]

References

Related Articles

Wikiwand AI