Not knowing the details of your tests, I'm not sure if this is directly applicable. However, I can tell you about something similar I've done. In my
Class::Tiny::ConstrainedAccessor, I need to run the same tests against about five different upstream modules. I put the tests in a
common module. I then have a separate *.t file for each upstream module (each test condition). Each *.t file loads the common module and the upstream module, then passes the upstream to the test runner in the common module (
example). The common module does not have a test plan or a
done_testing() call, so it fits seamlessly into the framework provided by the *.t file.