Ticket #283: runthistest.patch

File runthistest.patch, 2.0 KB (added by rhebus, 5 years ago)

patch to add menu item to run current .t file under prove -bv

  • trunk/Padre/lib/Padre/Wx/Main.pm

     
    16011601 
    16021602=pod 
    16031603 
     1604=head3 on_run_this_test 
     1605 
     1606    $main->on_run_this_test; 
     1607 
     1608Callback method, to run the currently open test through prove. 
     1609 
     1610=cut 
     1611 
     1612sub on_run_this_test { 
     1613    my $self     = shift; 
     1614    my $document = $self->current->document; 
     1615    unless ($document) { 
     1616        return $self->error( Wx::gettext("No document open") ); 
     1617    } 
     1618 
     1619    # TODO probably should fetch the current project name 
     1620    my $filename = $document->filename; 
     1621    unless ($filename) { 
     1622        return $self->error( Wx::gettext("Current document has no filename") ); 
     1623    } 
     1624    unless ($filename =~ /\.t$/) { 
     1625        return $self->error( Wx::gettext("Current document is not a .t file") ); 
     1626    } 
     1627 
     1628    # Find the project 
     1629    my $project_dir = Padre::Util::get_project_dir($filename); 
     1630    unless ($project_dir) { 
     1631        return $self->error( Wx::gettext("Could not find project root") ); 
     1632    } 
     1633 
     1634    my $dir = Cwd::cwd; 
     1635    chdir $project_dir; 
     1636    $self->run_command("prove -bv $filename"); 
     1637    chdir $dir; 
     1638} 
     1639 
     1640=pod 
     1641 
    16041642=head3 run_command 
    16051643 
    16061644    $main->run_command( $command ); 
  • trunk/Padre/lib/Padre/Wx/Menu/Run.pm

     
    6868            $_[0]->on_run_tests; 
    6969        }, 
    7070    ); 
     71     
     72    $self->{run_this_test} = $self->add_menu_item( 
     73        $self, 
     74        name       => 'run.run_this_test', 
     75        label      => Wx::gettext('Run This Test'), 
     76        menu_event => sub { 
     77            $_[0]->on_run_this_test; 
     78        }, 
     79    ); 
     80 
    7181    $self->AppendSeparator; 
    7282 
    7383    $self->{stop} = $self->add_menu_item( 
     
    111121        ? $self->{run_command}->IsEnabled 
    112122        : 0 
    113123    ); 
     124    $self->{run_this_test}->Enable( 
     125          $document && defined($document->filename) && $document->filename =~ /\.t$/ 
     126        ? $self->{run_command}->IsEnabled 
     127        : 0 
     128    ); 
    114129 
    115130    return 1; 
    116131}