Я использую тестовую среду Google для C++. Каждый файл содержит config.hpp, который определяет глобальную конфигурационную переменную. Я хотел бы определить свою конфигурацию в переменной, а не в compile-time const или constexpr
. Как я могу определить зависимости, чтобы иметь одну и ту же переменную в разных файлах, которые связаны друг с другом? Нужно ли использовать синглтон? Можно ли это избежать? Есть ли лучший рекомендуемый способ использования нескольких тестовых файлов xUnit style?Как использовать глобальную переменную для «конфигураций» в нескольких тестах в рамках Googletest
Мой конфигурационный файл: config.hpp
:
#pragma once
struct {
const float tolerance = 0.001;
// ...
} CONFIG_VAR;
Каждый тест * Источник .cpp файл как:
#include "gtest/gtest.h"
#include "core/config.hpp"
TEST(a, b) { ... }
Мой главный файл:
#include "gtest/gtest.h"
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
Я компиляции и компоновки с использованием :
em++ -I $GTEST_ROOT/googletest/include main_all_tests.cpp test_*.cpp
PS. Моя проблема заключается в множественном определении переменной CONFIG_VAR.
Мое решение основано на related question.
Я не могу определить переменную _global_ в вашем примере кода? –
Это 'CONFIG_VAR', определенная в' core/config.hpp' –
, в чем проблема? Это несколько определений CONFIG_VAR? Затем он повторяется по этому вопросу: http://stackoverflow.com/questions/5370413/multiple-defined-symbols-c-error – PiotrNycz