Oh, I see how these are used. Put them in a subpackage named "api" and add Javadoc stating 1) what they do, and 2) that they are loaded via ServiceLoader.

I would personally prefer that most tests of RunNotifier be pure unit test, because unit tests are easier to understand. To unit test this, you can have a package-scope constructor that takes in a class that loads classes via ServiceLoader.

Of course we do want one integration test that uses the real ServiceLoader to load two RunListeners.