Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Perl now includes Test2::Suite

8 views
Skip to first unread message

Paul "LeoNerd" Evans

unread,
Sep 21, 2023, 6:30:04 AM9/21/23
to Perl5 Porters
As of yesterday, bleadperl now ships with the full Test2::Suite
distribution, which includes `Test2::V0`.

This was merged a little bit after the 5.39.3 release so it'll make its
first public outing in 5.39.4. The perldelta says

• Test2::Suite 0.000156 has been added to the Perl core.

This distribution contains a comprehensive set of test tools
for writing unit tests. It is the successor to Test::More and
similar modules. Its inclusion in the Perl core means that
CPAN module tests can be written using this suite of tools
without extra dependencies.

• Term::Table 0.017 has been added to the Perl core.

This module is a dependency of Test2::Suite.

Over the past few months I've already been migrating quite a lot of my
CPAN dists into using Test2, and I imagine I'll continue to do so.

Test2 has a "migration guide" manual that you might find useful:

https://metacpan.org/pod/Test2::Manual::Testing::Migrating

Though honestly I find I get my tests about 99% correct already by
simply doing:

$ find -name \*.t | xargs sed -i 's/use Test::More/use Test2::V0/'
$ find -name \*.t | xargs sed -i 's/is_deeply(/is(/'

then manually editing any other edge-cases that I find; but that's
perhaps easier because my existing test style already mostly matched
what Test2 wanted.

Anyhow, I suggest going to check it out, because it's verymuch the
direction that further development will be happening. The legacy tools
of `Test::More` and friends are unfortunately now not suitable for
adding any new features or tools to, so I consider them "end-of-life".
They'll continue to work, but I wouldn't suggest anyone write any new
tests based on them, and instead consider gradually migrating what you
have into Test2 instead.

--
Paul "LeoNerd" Evans

leo...@leonerd.org.uk | https://metacpan.org/author/PEVANS
http://www.leonerd.org.uk/ | https://www.tindie.com/stores/leonerd/

Paul "LeoNerd" Evans

unread,
Sep 21, 2023, 1:00:04 PM9/21/23
to lnation, Perl5 Porters
On Thu, 21 Sep 2023 12:58:52 +0100
lnation <em...@lnation.org> wrote:

> It would be useful if there was a generic migration script which
> takes a repository using Test::More and rewrites it to use Test2
> (Test2::V0).

If you wish to write a program that statically-analyses unit test files
written in perl code and rewrites parts of them for different
behaviour, go ahead. I don't think anyone will try to stop you. :)

Ole Peder Brandtzæg

unread,
Sep 21, 2023, 8:30:04 PM9/21/23
to perl5-...@perl.org
On Thu, Sep 21, 2023 at 11:22:36AM +0100, Paul "LeoNerd" Evans wrote:
> As of yesterday, bleadperl now ships with the full Test2::Suite
> distribution, which includes `Test2::V0`.

Wonderful news!

> Though honestly I find I get my tests about 99% correct already by
> simply doing:
>
> $ find -name \*.t | xargs sed -i 's/use Test::More/use Test2::V0/'
> $ find -name \*.t | xargs sed -i 's/is_deeply(/is(/'

I gave this a bash in a codebase I help maintain, and it worked well
enough, save for the fact that we use(d) the "tests => <num_tests>"
syntax, so I had to get rid of that and add "done_testing" to the end of
all the tests. I never enjoyed counting and updating the number of tests
anyway, so I consider this an improvement :-)

--
Ole Peder Brandtzæg | En KLST/ITK-hybrid
Please don't look at me with those eyes
Please don't hint that you're capable of lies
0 new messages