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.
| Test::More | |
|---|---|
| Original author | Michael G Schwern |
| Developer | Chad 'Exodist' Granum |
| Initial release | April, 2001 |
| Written in | Perl |
| Operating system | Cross-platform |
| Available in | English |
| Type | Unit testing module |
| License | Dual-licensed - Artistic License and GPL |
| Website | https://metacpan.org/pod/Test::More |
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]