Hi Alan
I'd repeat what Simon says.
If you split testcases across multiple processes, such per-testcase setup needs repeating in each process. So it can add a lot more work to your test suite, and may even make it slower overall. It's for this reason I recommend those using pytest-xdist use the --dist=loadscope option, which copies what Django does.
Simon's suggestion of ordering test cases by size could indeed help runtime. But I would normally prefer to use the --shuffle option (or pytest-randomly) to randomize test order, in order to discover test isolation bugs.
I would just recommend trying to keep test cases within a reasonable size bound. If you benchmark and find one to be particularly large, try speeding it up (setUpTestData, avoid TransactionTestCase, etc.) or split it.
Thanks,
Adam