如何在Visual Studio中运行单个Google测试? -- c++ 领域 和 visual-studio-2010 领域 和 googletest 领域 相关 的问题

How to run single google test in visual studio?


简体版||繁體版
2
vote

问题

中文

我已配置Visual Studio for Google测试。然后我在VS2010中写了一些简单的Google测试用例,如下所示:

  any2  

我的问题是如何运行不是所有(run_all_tests)测试,而是一个特定的测试用例?有没有任何宏观。运行(simpleTest.test1); ?

英文原文

I've configured visual studio for google test. Then I've written some simple google test cases in vs2010, as You can see below:

TEST(simpleTest, test1){     float base = 4.f;     float exponent = 1.f;     float expectedValue = 4.f;     float actualValue = pow(base, exponent);     EXPECT_FLOAT_EQ(expectedValue, actualValue); } TEST(simpleTest, test2){     float base = 4.f;     float exponent = 2.f;     float expectedValue = 16.f;     float actualValue = pow(base, exponent);     EXPECT_FLOAT_EQ(expectedValue, actualValue); } int main(int argc, char **argv) {   ::testing::InitGoogleTest(&argc, argv);   RUN_ALL_TESTS(); } 

My question is how to run not all (RUN_ALL_TESTS) the tests but one specific test case? Is there any macro e.g. RUN(simpleTest.test1); ?

        
   
   

回答列表

9
 
vote
vote
最佳答案
 

如果您希望使用 GTEST_FLAG 宏(请参阅运行测试程序:高级选项)

例如,例如,在您的情况下,您可以执行以下操作:
  InvocationMapping0  
但是,像这样的硬编码测试过滤器通常是不可取的,因为您每次想要更改过滤器时都需要重新编译。

就通过Visual Studio传递了运行时的标志,我猜您可以知道您可以将 InvocationMapping1 添加到目标属性页面的"调试" 选项中的命令参数?

 

You can compile the command line flags into your test executable if you want by using the GTEST_FLAG macro (see Running Test Programs: Advanced Options)

So for example, in your case you could do:

int main(int argc, char **argv) {   ::testing::GTEST_FLAG(filter) = "simpleTest.test1";   ::testing::InitGoogleTest(&argc, argv);   RUN_ALL_TESTS(); } 

However, hardcoding test filters like this is normally undesirable, since you need to recompile every time you want to change the filter.

As far as passing the flags at run-time via Visual Studio, I guess you know that you can just add --gtest_filter=simpleTest.test1 to the Command Arguments in the "Debugging" option of your target's Property Pages?

 
 
3
 
vote

没有宏指定单个测试。只有run_all_tests。

我认为这是通过设计,因为运行所有测试通常是优选的。但是,如果要将其放入代码中,只需伪造这样的命令行参数:

  InvocationMapping2  
 

There isn't a macro to specify a single test. There is just RUN_ALL_TESTS.

I think this is by design since running all tests usually preferable. However, if you want to put it in code, just fake the command line arguments like this:

const char *testv[2]= {     "gtest",     "--gtest_filter=simpleTest.test1", }; int testc=2;  ::testing::InitGoogleTest(&testc, (char**)testv); int result = RUN_ALL_TESTS(); 
 
 
 
 
0
 
vote

我还没有真正明白你是否确实想要硬否定你的单一测试,或者如果你想在测试执行时间内决定,则应运行单个测试的时间。如果后者是您想要的,您可以使用这些VS扩展,将您的测试集成到VS'测试资源管理器中:

  • google测试适配器(vs 2012-2017;免责声明:我是作者之一)
  • 测试适配器用于谷歌测试(vs 2017; fork Microsoft提供的上面适配器)
 

I haven't really understood whether you indeed want to hardcode your single test, or if you want to decide at test execution time which single test shall be run. If the latter is what you want, you can make use of these VS extensions which integrate your tests into VS' test explorer:

  • Google Test Adapter (VS 2012-2017; disclaimer: I'm one of the authors)
  • Test Adapter for Google Test (VS 2017; fork of the above adapter provided by Microsoft)
 
 

相关问题

4  依赖性在googlet中使用cmake:gtest / gtest.h没有这样的文件或目录  ( Dependencies issue on googletest with cmake gtest gtest h no such file or direc ) 
bonjour, 我目前在CMake上工作,以便在工作中使用ExternalProject_add。而且我想测试Googletest,我试图测试两者。我在编码我的单元测试代码期间遇到问题。 所以我只是遵循github上的googlet最新的项目: https://github.com/google/googlete...

0  使用CMake来极少地构建一个简单的头部的测试  ( Minimalistically building a test for a simple header using cmake ) 
我有一个c ++标题,它包含一个带有如下方法的类。让我们说它只有我拥有的标题。 // MyHeader.hpp #pragma once #include <string> namespace myheaderonlylibrary { class MyClass { public: unsigne...

1  (make / g ++)包括自动生成依赖目标的完整路径? (或解决方法)  ( Make g include full path of auto generated dependency targets or workaroun ) 
[短版] 即使它们位于不同的文件夹中,我不能在我的单元中拥有两个具有相同名称的两个源文件。 g ++,彼此脾气暴躁。 (或者也许我是愚蠢的) [long版] 我的Make / G ++ / GTEST设置遇到了问题。当G ++自动生成依赖项时,它会生成如此: event_handler.o: src/os/e...

2  用Google测试测试崩溃  ( Testing for crash with google test ) 
在谷歌测试中,我希望能够做到这样的事情: pip search0 ,我希望输出显示错误,即语句实际上使过程异常死亡。 在Google测试中是否有任何支持?我很确定我是如何自己实施的,所以我几乎确定了它是可能的。 ...

0  GTEST链接错误(从GCC 4.x移动到GCC 7.x)  ( Gtest linking error moved from gcc 4 x to gcc 7 x ) 
我使用waf作为构建工具来构建C ++库。 我早些时候一直在使用GCC 4.8.x并使用STD = C ++ 98,它正在工作正常 但是,当我尝试将编译器版本更改为GCC 7.2时,有一系列与GTEST相关的问题。 EX:未定义引用`testing :: nextent :: printstringto 如果有人能...

1  Cxxtest可以做参数化测试吗?  ( Can cxxtest do paramaterized tests ) 
根据 / a>文章,可以在Googlet最框架中进行参数化测试,其中一些代码如下: INSTANTIATE_TEST_CASE_P(InstantiationName, MyStringTest, ::testing:...

2  使用Xcode 7.3 / 8的iOS上GTEST  ( Gtest on ios with xcode 7 3 8 ) 
可以请任何人给我任何关于如何使用googlet的说明书 IOS平台上/ GTEST框架(实际的iOS应用程序)?以及如何将其与XCTEST框架集成报告? 我试过但没有成功,也没有足够的资源。以下是参考的链接。 https://github.com/google/googlet https://group...

1  用于TestSuite属性的GTEST RecordProperty()  ( Gtest recordproperty for testsuite attribute ) 
使用Google测试框架进行单元测试,是否可以配置输出XML文件属性?我知道 'test case' 属性是可能的。是否可以配置XML文件的顶级属性( 'testsuite' 或 'testsuites' ) 这是我从文档中获得的:调用 RecordProperty() 允许测试的寿命外部。如果它在测试之外被称为,但...

3  自动生成Google模拟方法?  ( Automatically generate google mock methods ) 
我很新近C ++和单元测试,我现在正在学习使用Google Mock和Google测试来测试我正在使用的一些代码。没有手动编写所有Google模拟方法,也有一种方法可以将Google Mock指向您的类,并让它自动为所有功能生成所有Google Mock方法? 有人告诉我他们认为应该是可能的,但随着我新的(几周前刚开...

84  谷歌测试中的数组比较?  ( Comparison of arrays in google test ) 
我希望在谷歌测试中比较两个数组。在unittest ++中,这是通过check_array_equal完成的。您如何在Google测试中进行? ...

1  c ++ gmock调用相同args的其他函数  ( C gmock invoke other function with same args ) 
我想创建一个模拟这个函数: bool func1(vector<string> data) 真正的函数应该填充向量并如果成功,则返回true。 我的模拟也应该用值填充向量并始终返回。我如何用gmock做它? ...

0  googletest:在成功断言上不打印消息  ( Googletest messages are not printed on successful assertion ) 
我正在尝试在成功的单位测试中发出警告,以gtest创建。 我希望下面的代码打印"我的警告消息" 某处: #include <gtest/gtest.h> GTEST_API_ int main(int argc, char** argv) { testing::InitGoogleTest(&argc,...

2  Windows GTEST期望_streq:错误:呼叫'cmphelperstreq'没有匹配函数  ( Windows gtest expect streq error no matching function for call to cmphelperst ) 
出于某种原因,GTEST在我的Dev Station上没有做得很好。一些断言/期望测试正在运行,但我无法获得与工作的比较。这就是代码如何看待克隆;注意错误弹出窗口: 在底部附加也是误差在编译时输出。由于我在Windows 10上使用JetBrains Clion,因此必须使用"Mingw Makefiles" ...

13  googletest不接受预期临时对象  ( Googletest does not accept temporary object in expect throw ) 
我有一个没有默认构造函数的类,但构造函数可能会抛出。我想要有一个测试: EXPECT_THROW(MyClass(param), std::runtime_error); 但是编译器, g++ ,抱怨 MyClass 没有默认构造函数。但是,以下... EXPECT_THROW(MyClass foo...

3  Google测试XML报告不会反映崩溃的测试  ( Google test xml report doesnt reflect crashed tests ) 
我正在使用Google测试框架进行单元测试,并且正在生成测试的XML报告。 Jenkins解析的XML。我最近已经注意到,在通过分段错误执行期间,我的一些单位测试被崩溃了。崩溃的测试生成了XML以及没有故障条目。因此,我没有运行标记为传递的测试。在这种情况下,我需要一种在这种情况下生成XML的方法,请建议。 ...

2  如何使用Gmock与依赖注入?  ( How do i use gmock with dependency injection ) 
我有一个类,它携带几个依赖,我想使用谷歌模型模拟,以便用Google测试测试该类。 简化,我有以下 1 : template<typename TDep> class SUT { private: TDep dependency; public: explicit SUT(const TDep...

3  最近的Googlet最近的彩色彩色  ( Coloredprintf in recent googletest ) 
我正在使用相当过时的googletest,并使用了自定义打印的黑客,在这里找到:如何在Google C ++测试框架中发送自定义消息? 我的来源包含以下代码的链接 namespace testing { namespace internal { enum GTestColor { COLOR...

1  编译器错误与std :: map和gtest中的dense_hash_map  ( Compiler error with stdmap and dense hash map in gtest ) 
当我尝试在我的Google测试中使用我的项目/模块时,我收到了这个错误。 gcc.compile.c++ bin/gcc-4.8.3/debug/link-static/gmock_test.o In file included from /usr/include/c++/4.8.2/tr1/functional...

9  googletest:从测试中访问环境  ( Googletest accessing the environment from a test ) 
我正在尝试为C ++(谷歌的单位测试框架)的GTEST,而且我创建了一个:: testing ::环境子类,以初始化并跟踪我对我的大部分测试所需的一些事情(和唐想要设置不止一次))。 我的问题是:如何实际访问环境对象的内容?我想我可以理论上可以在我的测试项目中的全局变量中拯救环境,但有更好的方法吗? 我正在尝试对已经...

6  我需要链接到构建googlemock的哪个库?  ( What libraries do i need to link to build a googlemock example ) 
我能够在VS2010中编译googlemock v1.6.x并生成版本和调试库。换句话说,我拥有的问题不是这个 googlemock和googletest在Visual Studio 2010中 现在我遵循这里的例子 http://code.google.com / p / googlemock / wiki / ...

1  初始化Googlet最新时CMAKE / CTEST测试失败  ( Cmake ctest test failure when initializing googletest ) 
我正在尝试在我的项目中集成CTEST和Googletest。我在我的项目中包含googletest,如 https://crascit.com/2015/07 / 25 / cmake-gtest / 我创建了一个带有coretest.cpp和cmakelists.txt的新测试文件夹。 Cmakelists包含...

12  在Google测试框架中访问argc和argv内部的方法是什么?  ( Whats the way to access argc and argv inside of a test case in google test fram ) 
我正在使用谷歌测试来测试我的c ++项目。但是,有些情况需要访问ARGC和ARGV以加载所需的数据。 在 main() 方法中,当初始化时,argc和argv传递给测试的构造函数。 testing::InitGoogleTest(&argc, argv); 如何在测试中稍后访问它们? TEST(Some...

1  如何设置并开始在Mac上使用Google测试框架?  ( How to setup and start to use google test framework on mac ) 
我已经阅读了许多文章和提示,解释了如何设置 99887666 的Google Test(C ++)框架,但我找不到任何关于如何在Mac OS上设置的文章而不使用IDE。 如何在Mac OS的终端上使用Google测试而不引用任何幻想IDE? ...

1  尝试在GTEST中清理对象时的分段错误  ( Segmentation fault when trying to clean object in gtest ) 
所以,这是我的测试。但它在最后一行中有分割错误:m-&gt; service-&gt;干净的。如果我不使用此功能,我会有内存泄漏。是否有替代方案? class ServiceTest: public ::testing::Test { protected: virtual void SetU...

10  如何使用Jenkins声明性管道在多个平台上构建和测试  ( How to use jenkins declarative pipeline to build and test on multiple platforms ) 
我试图做一些我觉得应该易做的事情,但我无法弄清楚如何。 基本上我有一个Jenkins Master(在Linux上运行)和两个从站,一个在Windows上,另一个在麦斯卡斯。 我想在所有3个平台上建立我的项目,并在所有3个平台上运行GTEST测试。 我可以构建并运行测试,但JUnit步骤似乎没有收集任何测试结果。 我...

相关问题

4  依赖性在googlet中使用cmake:gtest / gtest.h没有这样的文件或目录 
0  使用CMake来极少地构建一个简单的头部的测试 
1  (make / g ++)包括自动生成依赖目标的完整路径? (或解决方法) 
2  用Google测试测试崩溃 
0  GTEST链接错误(从GCC 4.x移动到GCC 7.x) 
1  Cxxtest可以做参数化测试吗? 
2  使用Xcode 7.3 / 8的iOS上GTEST 
1  用于TestSuite属性的GTEST RecordProperty() 
3  自动生成Google模拟方法? 
84  谷歌测试中的数组比较? 
1  c ++ gmock调用相同args的其他函数 
0  googletest:在成功断言上不打印消息 
2  Windows GTEST期望_streq:错误:呼叫'cmphelperstreq'没有匹配函数 
13  googletest不接受预期临时对象 
3  Google测试XML报告不会反映崩溃的测试 
2  如何使用Gmock与依赖注入? 
3  最近的Googlet最近的彩色彩色 
1  编译器错误与std :: map和gtest中的dense_hash_map 
9  googletest:从测试中访问环境 
6  我需要链接到构建googlemock的哪个库? 
1  初始化Googlet最新时CMAKE / CTEST测试失败 
12  在Google测试框架中访问argc和argv内部的方法是什么? 
1  如何设置并开始在Mac上使用Google测试框架? 
1  尝试在GTEST中清理对象时的分段错误 
10  如何使用Jenkins声明性管道在多个平台上构建和测试 



© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有