NAME

Test::OpenTracing::Integration - Easy Testing of OpenTracing Integrations

SYNOPSIS

Your 'App'

package MyApp {
    use OpenTracing::GlobalTracer qw/$TRACER/;
    
    sub something {
        my $scope = $TRACER->start_active_span('some-work');
        
        $TRACER->start_span('more-work')->finish;
        
        $scope->close
    }
}

In the test:

use OpenTracing::Implementation qw/Test/;
use Test::OpenTracing::Integration;

use MyApp;

MyApp->something();

global_tracer_cmp_easy(
    [
        { operation_name => 'more-work', level => 1 },
    ],
    'child span created'
);

IMPORTED FUNCTIONS

All of these functions require the current global tracer to be an instance of OpenTracing::Implementation::Test::Tracer. All are exported by default.

global_tracer_cmp_deeply

Runs a cmp_deeply on the current global tracer.

See: "cmp_deeply" in OpenTracing::Implementation::Test::Tracder

global_tracer_cmp_easy

Runs a cmp_easy on the current global tracer.

See: "cmp_easy" in OpenTracing::Implementation::Test::Tracder

global_tracer_cmp_spans

Runs a cmp_spans on the current global tracer.

See: "cmp_spans" in OpenTracing::Implementation::Test::Tracder

reset_spans

Removes all saved spans from the current global tracer. Useful to start fresh before new test cases.

AUTHOR

Szymon Nieznanski <snieznanski@perceptyx.com>

COPYRIGHT AND LICENSE

'Test::OpenTracing::Integration' is Copyright (C) 2019 .. 2020, Perceptyx Inc

This library is free software; you can redistribute it and/or modify it under the terms of the Artistic License 2.0.

This package is distributed in the hope that it will be useful, but it is provided "as is" and without any express or implied warranties.

For details, see the full text of the license in the file LICENSE.