I asked for feedback on the approach of implementing tests in .el[1] and got only positive feedback (well, only one bit of feedback at all). Here are some simpler tests implemented using this approach, trying to address the concerns about seeing what failed. The test output is now something like: PASS notmuch-show-clean-address 1 PASS notmuch-show-clean-address 2 FAIL notmuch-show-clean-address 3 Expect: "ДБ <db-uknot@stop.me.uk>" Output: "db-uknot@stop.me.uk" Expect: "foo (at home) <foo@bar.com>" Output: "foo <foo@bar.com>" Expect: "foo [at home] <foo@bar.com>" Output: "foo at home <foo@bar.com>" Expect: "Foo Bar" Output: nil Obviously the first two tests passed and the third failed. Footnotes: [1] id:"cunmxabqs6k.fsf@hotblack-desiato.hh.sledj.net"