在 Google 测试框架中的测试用例中访问 argc 和 argv 的方法是什么?
我正在使用 Google Test 来测试我的 C++ 项目。然而,某些情况下需要访问 argc 和 argv 来加载所需的数据。
在main()
方法中,初始化时,argc和argv被传递给测试的构造函数。
testing::InitGoogleTest(&argc, argv);
我如何在稍后的测试中访问它们?
TEST(SomeClass, myTest)
{
// Here I would need to have access to argc and argv
}
I’m using Google Test to test my C++ project. Some cases, however, require access to argc and argv to load the required data.
In the main()
method, when initializing, argc and argv are passed to the constructor of testing.
testing::InitGoogleTest(&argc, argv);
How can I access them later in a test?
TEST(SomeClass, myTest)
{
// Here I would need to have access to argc and argv
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我不知道谷歌的测试框架,所以可能有更好的方法来做到这一点,但这应该可以:
全局变量并不漂亮,但是当你拥有的只是一个不允许你传输某些数据的测试框架时从
main()
到您拥有的任何测试函数,它们都能完成工作。I don't know google's test framework, so there might be a better way to do this, but this should do:
Globals aren't pretty, but when all you have is a test framework that won't allow you to tunnel some data from
main()
to whatever test functions you have, they do the job.如果使用 Visual Studio 在 Windows 上运行,则它们在 __argc 和 __argv 中可用。
If running on Windows using Visual Studio, those are available in __argc and __argv.
您可以使用内部 API
::testing::internal::GetArgvs()
来获取输入 argumentmnts。当您运行测试用例时。结果将取决于论点。
You may use the internal API
::testing::internal::GetArgvs()
to get the input arguemnts.When you run your test case. The result will depend on the arguments.