As most Salesforce test runners report a stack trace that points to the failed test line (and usefully the calling lines that is helpful when more complex test classes are used) we generally do not include a failure message in assertions as that would violate the DRY principle e.g.:
Just noticed that:
sfdx force:apex:test:run --classnames WizControllerTest --resultformat human
doesn't output the failing line yet alone the stack trace making it hard to understand exactly what failed when multiple similar assertions are present in a test method:
TEST NAME OUTCOME MESSAGE RUNTIME (MS) ──────────────────────────────────────── ─────── ──────────────────────────────────────────────────────────────────────────────────────────────────── ──────────── WizControllerTest..readRecord Pass 93 WizControllerTest..readRelatedRecords Fail "System.AssertException: Assertion Failed: Expected: a0356000000GohBAAS, Actual: a0356000000Goh9AAC" 382
(Yes you can change to
--resultformat json but then it is not easy to spot the "StackTrace" output.)
If you know of a channel to Salesforce where I can raise this issue, please let me know.