File & line go into asserts because it isn't usual to ship an executable with symbolic debug info in it. Unit testing, however, is different.