Вопрос о C++ и gtest
: ни с тем, ни с другим я не работаю часто, так что простите, если это простой вопрос.
Похоже, мои тесты не могут быть обнаружены, если я использую функцию extern
в любом из моих тестов:
Я работаю в VS 2022: я добавил тестовый проект Google и сослался на тестируемый проект C++. Я пытаюсь протестировать Function1
, которая определена в тестируемом проекте как
В моем тестовом проекте есть следующее:
Когда я собираю решение с обоими проектами в нем, я получаю ошибку в обозревателе тестов "Убедитесь, что средство обнаружения и исполнители тестов зарегистрированы, а настройки версии платформы и фреймворка соответствуют, и повторите попытку
"
Если я не вызываю Function1
в своем тесте, тесты отображаются в обозревателе тестов
Что я здесь делаю не так?
#ifdef __cplusplus
extern "C" {
#endif
__declspec(dllexport) BYTE* Function1(BYTE* obj1, int len) noexcept(false)
{
...
}
extern "C"
{
extern BYTE* Function1(BYTE* obj1, int len);
}
TEST(TestCaseName, TestName)
{
retVal = Function1(GetObj1(), GetLen());
EXPECT_TRUE(0 == std::memcmp(retVal, GetExpectedResult(), sizeof(retVal)));
}