I presume that deep down inside the function you want to test there is a call to Test::More::ok(). If there isn't, there probably should be. You need to mock that function. I do this in the tests for Class::Mockable.

Are you saying that I need to mock Test::More's ok()? I also use subtest(), is_deeply(), is(), like() BTW, should I mock those too? Why?
I'd rather execute the test in a subprocess and parse the TAP instead.

You could do that, but beware that the TAP standard is slowly evolving. You need to make sure that you can cope when new features are added to it. You may also need to cope with code that doesn't actually use Test::More and just outputs something vaguely TAP-ish. Lots of old code's test suites contain things like this: