Можно утверждать, что библиотека модульных тестов - это всего лишь библиотека, но я не вижу ее в таком виде.
Во-первых, цель библиотеки модульного тестирования - использовать ее в коде, который не является рабочим кодом. Это означает, что определенные критерии качества, относящиеся к производственному коду, могут не соблюдаться. Например, если в библиотеке модульных тестов есть ошибка, это раздражает, но обычно не наносит вред производственному коду. Или производительность может быть не такой значимой, как безопасность потоков и так далее. Я не хочу сказать, что популярные фреймворки для юнит-тестирования плохого качества. Но разработчики этих библиотек имеют в мире все права принимать проектные решения, исходя из предположения, что их код не будет частью производственного кода.
Во-вторых, использование библиотеки должно осуществляться в соответствии с философией соответствующей библиотеки. Например, если вы используете определенную библиотеку графического интерфейса, это влияет на способ обработки событий в вашем приложении. И фреймворки модульного тестирования исходят из предположения, что фреймворк контролирует исполняемый файл (от тестового бегуна). Поэтому все функции из этой библиотеки могут зависеть от настройки и запуска тестового прогона. Если какая-то функция из библиотеки не имеет этой зависимости, это деталь реализации, которая может измениться с новой версией библиотеки.
Наконец, код должен сообщать о намерениях. Это включает в себя включает в себя (каламбур). Разработчик не намеревался писать код модульного тестирования, но именно об этом сообщит включение библиотеки модульного тестирования.