In the Padre project we encountered some strange behavior.
We recently switched to use Module::Install and we also use Test:::NoWarnings
in our tests.

It seems Module::Install loads all the modules listed as "requires" or
"test_requires"
during the execution of Makefile.PL


This brought up the question what happens when Test::NoWarnings is
"require"-d and
not "use"-d. As I can see from the code, the import() call is what
generated the
additional test in the END block. So that part behaves nicely.
On the other hand Test:::NoWarnings still hides all the warnings in such case.
Specifically it hides the warnings Makefile.PL generates when some of
the modules
are missing or are at a version lower than required.

So I think - besides the fact that M::I probably should not load the
required modules
to memory - "require Test::NoWarnigs" should not hide warnings.


As a workaround now, I added the following lines to the beginning of
our Makefile.PL

eval  {
        require Test::NoWarnings;
        $SIG{__WARN__} = 'DEFAULT';
};



regards
   Gabor

Reply via email to