Since Catalyst has switched to Plack for it’s underlying engine it’s opened up lots of funky new possibilities. You can move parts of your infrastructure outside of your catalyst app, while still making use of the catalyst configuration, and still keeping it in the code for the project.
When it comes to testing it does not appear that the Catalyst::Test and Test::WWW::Mechanize::Catalyst modules automatically pick up your .psgi file when building the test server. This might be a feature for some tests, but sometimes you’ll definitely want to test the whole lot together. Luckily that’s fairly simple. When it comes to replacing Test::WWW::Mechanize::Catalyst you can switch to PSGI instead of Catalyst. Probably the closest thing to Catalyst::Test is Plack::Test. Both test modules require you to provide a $app object which Plack::Util makes it easy to load from your existing .psgi file.
Here’s a really simple test converted over to use a .psgi file.
use Test::Most; use Test::WWW::Mechanize::PSGI; use Plack::Util; my $app = Plack::Util::load_psgi 'app.psgi'; my $mech = Test::WWW::Mechanize::PSGI->new( app => $app ); $mech->get_ok('/'); done_testing();