Tests for perl packages I'm always creating in some way or other.
Dist::Zilla does a lot of work for you, including creating tests.
But Dist::Zilla doesn't enforce any standards for the tests, and I frequently work on projects where I'm not able to use Dist::Zilla for one reason or another.
I found myself copying tests from various places, and not always the right ones, or all of the tests I needed to include to make good code. So, I created this repository.
XXX: There is a way to just export the xt directory ... need to include instructions here.
Maybe this has something.
Currently included tests are listed and described below but the actual contents of the xt directory are authoritative, not this document.
Check the individual files for details on what each test is checking for.
I'm trying to follow the definitions from The Lancaster Consensus for different types of tests.
These tests are not necessarily categorized according to these definitions. I'm working on fixing that.
AUTHOR_TESTING
: if true, tests are being run as part of an author's personal
development process; such tests may or may not be run prior to release. CPAN
clients must not set this variable. Distribution packagers (ppm, deb, rpm,
etc.) should not set this variable.
- Check Dependencies
- Check for common spelling mistakes
- Check for errors in POD
- Check spelling
- Consistent Version Numbers
- Correct EOF
- Correct EOLs
- Is there a synopsis?
- Is there a version number?
- No Tabs!
- POD Coverage
RELEASE_TESTING
: if true, tests are being run as part of a release QA
process; CPAN clients must not set this variable.
- Were changes noted in the Changes file?
- Is the manifest correct?
- Are namespaces clean?
- Do scripts compile and run ok?
- Do packages compile?
- Is there a CPAN changes file?
- Another manifest check
- Is CPAN meta information accurate?
- Were any fixme notes left in the code?
- Does the package have a version number?
- Does the package pass kwalitee tests?
- Do the modules load?
- Is META.json created correctly?
- Are minimum version for required libraries correct?
- Did you forget a $DB::single?
- Don't leave smart comments in code
- Are PAUSE permissions set up correctly?
- Does code use best practices?
- Experimental version of best practices check
- Are POD links working?
- Are there any broken sites we are linking to?
- Are all prerequisites installed and accounted for?
- Does this package has appropriate legal information?
- Are there any variables that are unused?
AUTOMATED_TESTING
: if true, tests are being run by an automated testing
facility and not as part of the installation of a module; CPAN smokers must
set this to true; CPAN clients must not set this.
NONINTERACTIVE_TESTING
: if true, tests should not attempt to interact with
a user; output may not be seen and prompts will not be answered.
EXTENDED_TESTING
: if true, the user or process running tests is willing to
run optional tests that may take extra time or resources to complete. Such
tests must not include any development or QA tests. Only tests of runtime
functionality should be included.