logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Test2::Plugin::SRand - Control the random seed for more controlled test environments.

Authors

Chad Granum <exodist@cpan.org>

Caveats

When srand is on (default) it can cause problems with things like File::Temp which will end up attempting the same "random" filenames for every test process started on a given day (or sharing the same seed).

Description

This module gives you control over the random seed used for your unit tests. In some testing environments the random seed can play a major role in results. The default configuration for this module will seed srand with the local date. Using the date as the seed means that on any given day the random seed will always be the same, this means behavior will not change from run to run on a given day. However the seed is different on different days allowing you to be sure the code still works with actual randomness. The seed is printed for you on failure, or when the harness is verbose. You can use the "T2_RAND_SEED" environment variable to specify the seed. You can also provide a specific seed as a load-time argument to the plugin.

Maintainers

Chad Granum <exodist@cpan.org>

Name

Test2::Plugin::SRand - Control the random seed for more controlled test environments.

Note On Load Order

If you use this plugin you probably want to use it as the first, or near-first plugin. "srand" is not called until the plugin is loaded, so other plugins loaded first may already be making use of random numbers before your seed takes effect.

Source

The source code repository for Test2-Suite can be found at https://github.com/Test-More/Test2-Suite/.

Synopsis

Loading the plugin is easy, and the defaults are sane: use Test2::Plugin::SRand; Custom seed: use Test2::Plugin::SRand seed => 42;

See Also