Lots of plugin functional tests using JenkinsRule assume some kind of software environment on the testing host, typically for running external processes (for example SCM tools), but this is rarely explicit. That makes it complicated to assure that both developer machines and CI builders have all required software packages installed and in the correct versions and configurations.
The acceptance-test-harness includes a very useful DockerFixture system which addresses this for acceptance tests. But acceptance tests are slow, flaky, and external to plugin sources, so most test code is written using functional tests.
We need to be able to reuse the same system in both kinds of tests.