英文:
Google test don't see custom flags
问题
Here is the translated code part without the code:
为什么 Google 测试在我输入以下内容时不设置我的标志:
--gtest_email="example@gmail.com" --gtest_passwd="passwd"
以下是我的代码:
#include <gtest/gtest.h>
#include <iostream>
GTEST_DEFINE_string_(email, "example@gmail.com", "登录以授权服务器");
GTEST_DEFINE_string_(passwd, "passwd", "授权服务器的密码");
class A : public ::testing::Test {
protected:
void SetUp() override {
email = ::testing::FLAGS_gtest_email;
passwd = ::testing::FLAGS_gtest_passwd;
}
};
Test_F(A, B) { std::cout << email + " " + passwd << std::endl; }
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
请注意,这段代码是 C++ 代码,用于 Google 测试框架。它似乎尝试使用 --gtest_email
和 --gtest_passwd
命令行参数来设置 email
和 passwd
变量,但您的问题可能是这些参数没有正确设置,或者代码中可能存在其他问题。需要进一步检查和调试以解决问题。如果您需要有关解决问题的指导,请提出具体问题,我将尽力提供帮助。
英文:
Why google test don't set my flag when I type
--gtest_email="example@gmail.com" --gtest_passwd="passwd"
and here is my code
#include <gtest/gtest.h>
#include <iostream>
GTEST_DEFINE_string_(email, "example@gmail.com", "Login to authorize to the server");
GTEST_DEFINE_string_(passwd, "passwd", "Password to authorize to the server");
class A: public ::testing::Test {
protected:
void SetUp() override {
email = ::testing::FLAGS_gtest_email;
passwd = ::testing::FLAGS_gtest_passwd;
}
};
Test_F(A, B) { std::cout << email + " " + passwd << std::endl; }
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
Or is there another way to parse command line arguments?
答案1
得分: 2
除了以前缀“--gtest_”标识的已知标志外,GoogleTest引擎将不会识别和不会传递给用户代码的标志。请使用没有该前缀的任何其他名称。不要使用GoogleTest的私有宏“GTEST_DEFINE_string_”,也不要使用带有后缀“_”的所有宏。
英文:
All other than the known flags with the prefix --gtest_
are eaten as unrecognized by GoogleTest engine and are not passed to an user code. Use any other names w/o that prefix. Don't use GoogleTest private macro GTEST_DEFINE_string_
, all macros with the suffix _
.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论