kamal has asked for the wisdom of the Perl Monks concerning the following question:

When i try to run prove, i get error, here is the command and stdout:
find test/ -name '*.t' ! -name '*falcon*' | xargs prove -v --norc -r t +est/ -formatter=TAP::Formatter::JUnit | tee test_results.xml Archive is not a known format type! at /usr/lib/perl5/5.8.8/App/Prove. +pm line 538.
  • Comment on Error running prove "Archive is not a known format type! at /usr/lib/perl5/5.8.8/App/Prove.pm line 538."
  • Download Code

Replies are listed 'Best First'.
Re: Error running prove "Archive is not a known format type! at /usr/lib/perl5/5.8.8/App/Prove.pm line 538."
by Anonymous Monk on Apr 18, 2014 at 20:14 UTC

    Not very much info to go on (the version number of the module that you're using would be good, e.g. perl -MApp::Prove -le 'print $App::Prove::VERSION'), but:

    Perhaps the arguments prove -r test/ and those provided by find ... | xargs prove ... are in conflict?

    Have you tried running the find command by itself to check that it only selects those tests that you want?

    Also, try running prove -v --norc -formatter=TAP::Formatter::JUnit TESTFILE for those tests individually until you run into the problem.

      perl -MApp::Prove -le 'print $App::Prove::VERSION' 3.28
      by itself, find runs fine:
      find test/ -name '*.t' | wc 153 153 8012
      prove -v --norc -formatter=TAP::Formatter::JUnit TESTFILE Archive is not a known format type! at /usr/coderyte/lib/perl5/5.8.8/A +pp/Prove.pm line 538.
      prove -r test/ , runs fine, but the output is not in JUnit format so it has to be the TAP Formatter, right ?
      ./perlmodver.sh TAP::Formatter::JUnit TAP::Formatter::JUnit: 0.09
      which seems to be the latest

        so it has to be the TAP Formatter

        No. Looks like it its from https://metacpan.org/source/WONKO/TAP-Harness-Archive-0.14/lib/TAP/Harness/Archive.pm

        # if it's not a format we understand, or it's not a directory $class->_croak("Archive is not a known format type!") unless $format && $ARCHIVE_TYPES{$format}; my (%ARCHIVE_TYPES, @ARCHIVE_EXTENSIONS); BEGIN { %ARCHIVE_TYPES = ( 'tar' => 'tar', 'tar.gz' => 'tar.gz', 'tgz' => 'tar.gz', ); @ARCHIVE_EXTENSIONS = map { ".$_" } keys %ARCHIVE_TYPES; }

        So its your xargs invocatio or its the extra -a/--archive option you're not showing

Re: Error running prove "Archive is not a known format type! at /usr/lib/perl5/5.8.8/App/Prove.pm line 538."
by Anonymous Monk on Apr 18, 2014 at 21:03 UTC