Add integration tests for PMD, and fix issues with error reporting.
Review Request #11557 — Created March 26, 2021 and submitted
This updates the PMD test suite to add both real-world simulation and
integration tests. The tests have been expanded to test for files
without errors, invalid ruleset configurations, and errors processing
source files (syntax errors).
This uncovered a handful of issues, mostly in the processing failure or
invalid ruleset cases, which have all been fixed. This code is more
bullet-proof, and generates more helpful error messages in the review
We're now using the JSON output, rather than the CSV output, which is
more useful and safer to parse. There shouldn't be any compatibility
issues with this.
We're also explicitly turning off report caching, since we don't want to
preserve that information anywhere.
All unit tests pass on Python 2.7 and 3.x.