I don't considered unit tests harmful, I use them extensively in [Arraymancer](https://github.com/mratsim/Arraymancer/tree/master/tests/tensor) but I only tests what is public which is probably about 80% of the code because as a math library, only thing kept private is the boilerplate basically.
Funnily you can find arguments on Google blog that: * ["Say no to end-to-end tests"](https://testing.googleblog.com/2015/04/just-say-no-to-more-end-to-end-tests.html) * ["toilet change detector tests considered harmful"](https://testing.googleblog.com/2015/01/testing-on-toilet-change-detector-tests.html) The naive alternative to Araq's macro: proc foo = echo test proc foo2 = echo "test2" when defined(testing): export foo export foo2