Я просмотрел Mojolicious::Command::test и использует Test::Harness
для запуска набора тестов. Модуль является оболочкой над TAP::Harness
, параметр formatter
, который нам нужно установить. Я не нашел способ, как пропустить параметр через (есть переменные среды, такие как HARNESS_OPTIONS
, но они не учитывают параметр).
Что вы можете сделать, так это реализовать new command for your application. Я создал новое приложение Mojolicious, добавлено новое пространство имен команд за направляющей выше в запуске приложения:
push @{$self->commands->namespaces}, 'JUnitTest::Command';
Тогда я только что скопировали Mojolicious::Command::test
в JUnit::Command::testjunit
и заменить последние строки run
метода:
$ENV{HARNESS_OPTIONS} //= 'c';
require Test::Harness;
Test::Harness::runtests(sort @args);
с
require TAP::Harness;
my $harness = TAP::Harness->new({
formatter_class => 'TAP::Formatter::JUnit',
lib => \@INC,
merge => 1,
});
$harness->runtests(sort @args);
Выполняется как
perl script/junit_test testjunit
привел к этому выходу:
<testsuites>
<testsuite failures="0" errors="0" tests="3" name="t_basic_t">
<testcase name="1 - get /"></testcase>
<testcase name="2 - 200 OK"></testcase>
<testcase name="3 - content is similar"></testcase>
<system-out><![CDATA[1..3
ok 1 - get/
ok 2 - 200 OK
ok 3 - content is similar
]]></system-out>
<system-err></system-err>
</testsuite>
</testsuites>
Надеется, что это помогает.
Это сработало отлично, спасибо вам большое! :) – VirtualWolf
Поднял вопрос [здесь] (https://github.com/kraih/mojo/issues/454), чтобы иметь возможность указать formatters. – VirtualWolf
@VirtualWolf - рад, что это помогло. Повышение проблемы может привести к улучшению команды тестирования, поэтому мы можем использовать альтернативные форматы без особых усилий. – bvr