in reply to Perl/Tk and Test?

Write your own MainLoop. Either replace Tk::MainLoop with a sub of your devising or prevent Tk from being loaded at all. I'd prefer the former:

my $old = *{Tk::MainLoop}{CODE}; *Tk::MainLoop = sub { ... };