Harness.pm 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. # ABSTRACT: TestRail testing harness
  2. # PODNAME: Test::Rail::Harness
  3. package Test::Rail::Harness;
  4. use strict;
  5. use warnings;
  6. use base qw/TAP::Harness/;
  7. =head1 DESCRIPTION
  8. Connective tissue for App::Prove::Plugin::TestRail. Nothing to see here...
  9. =cut
  10. # inject parser_class as Test::Rail::Parser.
  11. sub new {
  12. my $class = shift;
  13. my $arg_for = shift;
  14. $arg_for->{parser_class} = 'Test::Rail::Parser';
  15. my $self = $class->SUPER::new($arg_for);
  16. return $self;
  17. }
  18. sub make_parser {
  19. my ($self, $job) = @_;
  20. my $args = $self->SUPER::_get_parser_args($job);
  21. #XXX again, don't see any way of getting this downrange to my parser :(
  22. $args->{'apiurl'} = $ENV{'TESTRAIL_APIURL'};
  23. $args->{'user'} = $ENV{'TESTRAIL_USER'};
  24. $args->{'pass'} = $ENV{'TESTRAIL_PASS'};
  25. $args->{'project'} = $ENV{'TESTRAIL_PROJ'};
  26. $args->{'run'} = $ENV{'TESTRAIL_RUN'};
  27. $args->{'case_per_ok'} = $ENV{'TESTRAIL_CASEOK'};
  28. $args->{'step_results'} = $ENV{'TESTRAIL_STEPS'};
  29. $self->SUPER::_make_callback( 'parser_args', $args, $job->as_array_ref );
  30. my $parser = $self->SUPER::_construct( $self->SUPER::parser_class, $args );
  31. $self->SUPER::_make_callback( 'made_parser', $parser, $job->as_array_ref );
  32. my $session = $self->SUPER::formatter->open_test( $job->description, $parser );
  33. return ( $parser, $session );
  34. }
  35. 1;
  36. __END__
  37. =head1 SEE ALSO
  38. L<TestRail::API>
  39. L<Test::Rail::Parser>
  40. L<App::Prove>
  41. =head1 SPECIAL THANKS
  42. Thanks to cPanel Inc, for graciously funding the creation of this module.