PassResult includes the ReturnValue of the Case, for non-void test methods.
Rename TestClassExpression to ClassExpression and TestMethodExpression to MethodExpression to mimic the naming convention of related types like ClassDiscoverer and MethodDiscoverer.
Rename local variables from @class to testClass for readability.
Rename example ParameterSource classes for readability.
Improve StubListener's output of nested exceptions, so that it is as descriptive as the real ConsoleListener.
When a custom test-sorting lambda throws exceptions, short-circuit test execution using the exception as the failure reason on all affected test cases.
When custom method discovery conditions throw, a descriptive exception message is used so that the convention author can better-know that the problem lies in their custom convention code.
When custom class discovery conditions throw, a descriptive exception message is used so that the convention author can better-know that the problem lies in their custom convention code.
When custom test-skipping conditions and skip reason lambdas throw, a descriptive exception message is used so that the convention author can better-know that the problem lies in their custom convention code.