Механика запуска тестов в GTest
Я занимаюсь отладкой C++ кода, который использует фреймворк GTest и страдает от синглтонов и глобальных разделяемых данных. Меня мучает некоторое непонимание того, как это работает внутри. Пытался найти ответы на свои вопросы в документации, но не нашел
Мои вопросы таковы:
- Вот есть тесты, а в тестах случаи, как эти тесты и случаи связаны друг с другом во время запуска?
- Запускает ли GTest каждый тест/случай в отдельном потоке/процессе?
- Какова механика фикстуры и переопределяемого метода SetUp()? Например, если в приложении есть метод, который можно звать лишь один раз на запуск, могу ли я добавить вызов этого метода в SetUp() используемой фикстуры и быть уверенным, что каждый тест/случай будет запущен в отдельном процессе с однократным вызовом SetUp()?