I think the "C++ is different in different environments, making it hard to write portable C++ code" argument is pretty weak. Is C++ annoying across different environments? Hell yeah, but I fail to see how is this any different/worse than production code.
Test frameworks use some pretty crazy tricks to produce a pleasant syntax with good error debugging messages. For an example, see CATCH: https://github.com/philsquared/Catch/wiki
I'd imagine this sort of stuff is much harder to port across systems than regular production code.