Тестирование пользовательского интерфейса выполняется медленно и дорого (с точки зрения времени).Их следует использовать только в качестве способа получения тестового покрытия, когда его невозможно получить другими способами, которые быстрее выполняются и проще в обслуживании.
Если ваша библиотека не имеет пользовательского интерфейсаВ любом случае, нет никаких причин вводить один только для запуска тестов пользовательского интерфейса.Было бы более разумно использовать вариант 2, как описано выше.
Единственным предостережением к этому будет то, что пример клиентских приложений может быть очень полезен для ручного тестирования при внесении изменений или регрессионного тестирования после внесения изменений.Значение этого будет зависеть от того, что находится в вашей библиотеке.Если вы создадите пример приложения, то хорошей идеей будет написать один или два теста пользовательского интерфейса, чтобы убедиться, что оно не регрессирует и не ломается при внесении изменений.Это особенно ценно, если вы не используете его очень часто.