in reply to Re^6: Introspecting function signatures
in thread Introspecting function signatures

I would use local for that:

{ local $tempdir = '/tmp/foo'; test_someting(); }

Most likely you need to wrap all these test_something(...) function calls anyway with your code, and that's a good place to set up the localized test fixtures as well.

I'm wondering a bit how you plan to handle one such function calling another function. Should the fixtures be recreated or not?

sub test_someting2( $tempdir, $aValue ) { if( $^O !~ /mswin/i ) { test_someting("$tempdir/$aValue"); } else { test_someting("$tempdir\\$aValue"); }; }

Replies are listed 'Best First'.
Re^8: Introspecting function signatures
by szabgab (Priest) on Mar 06, 2021 at 21:13 UTC
    You would not call test functions by yourself, the system would do. In this specific case you'd use File::Spec anyway.

    What is interesting in this case might be how to skip tests. I think the usual SKIP would work inside the test functions, but there might be some way to mark test functions to be skipped conditionally. Pytest uses "decorators" for this.

    @pytest.mark.skipif(sys.platform != 'darwin', reason="Mac tests") def test_func(): ...