2010-08-16 1 views
2

Прямо сейчас, когда я делаю что-то вроде этого:Есть ли способ, чтобы субтитры Test :: Class «Тесты» всегда были такими же, как Test :: More?

use strict; 
use warnings; 

package My::Test; 
use parent 'Test::Class'; 
use Test::More; 

sub overrides_basic : Tests { 
    ok(1, "works"); ok(1, "works"); 
} 
sub overrides_no_profile : Tests { 
    ok(2, "works"); ok(2, "works"); 
} 
__PACKAGE__->runtests; 
1; 

Выход заключается в следующем:

ok 1 - works 
ok 2 - works 
ok 3 - works 
ok 4 - works 
1..4 

Это не очень приятно.

Однако, если я это сделать:

use strict; 
use warnings; 

package My::Test; 
use parent 'Test::Class'; 
use Test::More; 

sub overrides_basic : Tests { 
    subtest 'overrides_basic' => sub { 
     ok(1, "works"); ok(1, "works"); 
    }; 
} 
sub overrides_no_profile : Tests { 
    subtest 'overrides_no_profile' => sub { 
     ok(2, "works"); ok(2, "works"); 
    }; 
} 
__PACKAGE__->runtests; 
1; 

Выход лучше и более желательны, например:

ok 1 - works 
    ok 2 - works 
    1..2 
ok 1 - overrides_basic 
    ok 1 - works 
    ok 2 - works 
    1..2 
ok 2 - overrides_no_profile 
1..2 

Проблема здесь состоит в том, что это очень много ненужной типизации работы делать. Поэтому на данный момент я просто буду подклассифицировать Test :: Class, чтобы переопределить Sub-arg тестов.

Однако мне интересно, существует ли для этого простое решение, которое я не смог найти.

ответ

3

После некоторых исследований я нашел, что это, кажется, не будет поддерживаться на всех, так что, вот модуль я просто написал для решения этой проблемы:

Test::Class::TestGroup

1

Test :: Class собирается быть обновлена подтесты поддержки, когда я получаю запасные варианты :-)

Первоначальный проект был сделан, когда мы представили их в qa-hackathon 2009 года. Просто нужно найти время, чтобы привести в порядок и объединиться с последними исправлениями.

+0

Ничего себе, спасибо за ответ и удачу от его реализации. :) – Mithaldu

Смежные вопросы