In order to get this to work, the positional arguments must use --driver-mode=cl <args>, and NOT clang-cl <args>. In the latter case, clang-tidy has to try really hard to "guess" whether the first argument is argv[0] or argv[1]. This still tests effectively the same thing, but without the convoluted magic of having to care about the name of the tool being run.
This is the test for D23455
I wonder whether the /Dname#value format should work in clang-cl mode as well (it's supported by cl.exe, if I understand https://msdn.microsoft.com/en-us/library/hhzbb5c8.aspx correctly).