GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Test::Git(3) User Contributed Perl Documentation Test::Git(3)

Test::Git - Helper functions for test scripts using Git

    use Test::More;
    use Test::Git;
    
    # check there is a git binary available, or skip all
    has_git();
    
    # check there is a minimum version of git available, or skip all
    has_git( '1.6.5' );
    
    # check the git we want to test has a minimum version, or skip all
    has_git( '1.6.5', { git => '/path/to/alternative/git' } );
    
    # normal plan
    plan tests => 2;
    
    # create a new, empty repository in a temporary location
    # and return a Git::Repository object
    my $r = test_repository();
    
    # clone an existing repository in a temporary location
    # and return a Git::Repository object
    my $c = test_repository( clone => [ $url ] );

    # run some tests on the repository
    ...

Test::Git provides a number of helpful functions when running test scripts that require the creation and management of a Git repository.

    has_git( $version, \%options );

Checks if there is a git binary available, or skips all tests.

If the optional $version argument is provided, also checks if the available git binary has a version greater or equal to $version.

This function also accepts an option hash of the same kind as those accepted by Git::Repository and Git::Repository::Command.

This function must be called before "plan()", as it performs a skip_all if requirements are not met.

"has_git" is now obsolete and will print a warning when used. The "test_requires_git" function provided by the Test::Requires::Git module is a much more flexible replacement.

"has_git" will be removed in a future release.

    test_repository( %options );

Creates a new empty git repository in a temporary location, and returns a Git::Repository object pointing to it.

This function takes options as a hash. Each key will influence a different part of the creation process.

The keys are:

temp
Array reference containing parameters to File::Temp "tempdir" function.

Default: "<[ CLEANUP =" 1 ]>>

init
Array reference containing parameters to "git init". Must not contain the target directory parameter, which is provided by "test_repository()" (via File::Temp).

Default: "[]"

The "init" option is only supported with Git versions higher or equal to 1.6.2.rc0.

clone
Array reference containing parameters to "git clone". Must not contain the target directory parameter, which is provided by "test_repository()" (via File::Temp).

Note that "clone" and "init" are mutually exclusive and that "test_repository()" will croak if both are provided. This option has no default value, since at least a Git URL must be provided to the "clone" option.

The "clone" option is only supported with Git versions higher or equal to 1.6.2.rc0.

git
Hash reference containing options for Git::Repository.

Default: "{}"

This call is the equivalent of the default call with no options:

    test_repository(
        temp => [ CLEANUP => 1 ],    # File::Temp::tempdir options
        init => [],                  # git init options
        git  => {},                  # Git::Repository options
    );

To create a bare repository:

    test_repository( init => [ '--bare' ] );

To leave the repository in its location after the end of the test:

    test_repository( temp => [ CLEANUP => 0 ] );

Note that since "test_repository()" uses "git init" to create the test repository, it requires at least Git version "1.5.0.rc1".

Philippe Bruhat (BooK) <book@cpan.org>

The "clone" option and capability of "test_repository()" owes a lot to Nathan Nutter (NNUTTER), who wanted to be able to clone into a test repository.

Test::Requires::Git.

Copyright 2010-2016 Philippe Bruhat (BooK), all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
2021-05-31 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.