A Revision's Harbormaster results are many jumps away from a it (Revision → Diff → Buildable → BuildTarget), and don't aggregate lint and unit status (They have only "pass/fail" status).
This results in several issues when using CI to test Revisions:
- Diffs still show "No Unit Test Coverage" even if many tests exist.
- If the CI also lints, you can see "No lint issues" followed by a list of 50 "lint errors".
- Displaying a revision with lots of tests is slow, because we load all tests to figure out which to show, and to aggregate coverage information.
- Revision History shows stars for lint/unit, but these don't take into account HM results.
- The "arc lint/arc unit" auto-build also allow for excuses, which we store on the diff instead of the HM build, which is funny.
We should aggregate lints, units, and coverage on the Buildable/Build/BuildTarget level (and maybe allow "excuse" as well, to avoid some special casing).
We currently figure out the status of build/unit on the client, and send it up during arc diff using differential.creatediff; We'll need to either change this flow to use a new/modified harbormaster.sendmessage (Which we currently use for lint/unit content), or else calculate it on the server (Where we'll be aggregating anyway).
Original ticket:
Harbormaster reported unit results showing "No Unit Test Coverage"
I'm implementing Unit test reporting over harbormaster for Jenkins (via the jenkins-phabricator-plugin: https://github.com/uber/phabricator-jenkins-plugin/pull/93)
I've successfully converted the unit tests into the harbormaster format, however on the Differential summary, under "Unit" it still shows "No Unit Test Coverage", even though it has test results:
As per the conduit spec, I am sending a single harbormaster.sendmessage call with a unit array (and overall result "pass").
Is this a UI bug, or is there a (possibly undocumented?) way to update the differential to show that it does have "Unit Test Coverage" available?
Thanks.