Недавно я начал использовать gtest и столкнулся с проблемой. Я хочу запустить набор тестов для файлов в папке, которые должны быть перечислены для этого. Мне удалось создать тест и создать экземпляр t с данными из списка файлов, но столкнулся с проблемой концептуального типа.
Я сделал, чтобы создать глобальный список для хранения имен файлов и заполнить его перед testing::InitGoogleTest
вызывается. это работает.
Однако факт, что я использую глобальные переменные, беспокоит меня. Я попытался переместить инициализацию списка в моего собственного потомка testing::Environment
, но это вызвало неудачу тестовых экземпляров. Чтобы быть более точным, список был заполнен, но тесты не выполнялись с использованием данных из него.
Итак, мои вопросы:
testing::Environment
должны удерживаться?Например:
std::vector<std::string> LoadValuesFromDisc() {
std::vector<std::string> result;
// Fill in result with data here...
return result; // RVO will ensure there are no unnecessary copies.
}
INSTANTIATE_TEST_CASE_P(
InstantiationName, TestFixture, testing::ValuesIn(LoadValuesFromDisc());