http://www.perlmonks.org?node_id=11117536


in reply to Running an editor in a test with "prove" command

Tests that require an interactive TTY don't mix well with non-interactive test environments; consider for example what would happen if this test were to be run on CPAN Testers. An alternative to the below is to use something like prompt from ExtUtils::MakeMaker, which can be forced to use defaults if run non-interactively.

use warnings; use strict; use Test::More; use Proc::InvokeEditor; use IO::Interactive qw/is_interactive/; SKIP: { skip "running non-interactively", 1 unless is_interactive; my $edited_text = Proc::InvokeEditor->edit('edit me'); is $edited_text, "edit you\n", 'can edit text'; } done_testing;

Replies are listed 'Best First'.
Re^2: Running an editor in a test with "prove" command
by nysus (Parson) on May 31, 2020 at 16:23 UTC

    Nice. I was scratching my head wondering if there was a way I could determine if I was running the script as a test or not. IO::Interactive is exactly what I needed. Thanks!

    $PM = "Perl Monk's";
    $MCF = "Most Clueless Friar Abbot Bishop Pontiff Deacon Curate Priest Vicar";
    $nysus = $PM . ' ' . $MCF;
    Click here if you love Perl Monks

      I think -t STDOUT would also do it.