问题是关于谷歌testing框架。 我想根据多个排除filter来运行排除某些testing的所有testing,如:– –gtest_filter=-ABC.*:-BCD.*
我使用Google C ++testing框架对我的代码进行unit testing。 我使用Eclipse CDT和C ++unit testing模块进行输出分析。 以前我使用CppUnit它有macros家庭CPPUNIT * _MESSAGE可以这样调用: CPPUNIT_ASSERT_EQUAL_MESSAGE("message",EXPECTED_VALUE,ACTUAL_VALUE) 并允许发送自定义消息来testing输出。 有没有办法在谷歌testing输出中包含一些自定义文本? (最好的方式,可以包括消息数据,由现有的程序读取自动化unit testing使用谷歌testing。)
我试图在我的Ubuntu机器上设置GTest环境。 但同时使GTest获得图书馆,我得到以下错误… som@som-VPCEH25EN:~/Workspace/CPP/gtest-1.6.0/make$ make g++ -I../include -g -Wall -Wextra -lpthread sample1.o sample1_unittest.o gtest_main.a -o sample1_unittest gtest_main.a(gtest-all.o): In function `~ThreadLocal': /home/som/Workspace/CPP/gtest-1.6.0/make/../include/gtest/internal/gtest-port.h:1336: undefined reference to `pthread_getspecific' /home/som/Workspace/CPP/gtest-1.6.0/make/../include/gtest/internal/gtest-port.h:1340: undefined reference to `pthread_key_delete' /home/som/Workspace/CPP/gtest-1.6.0/make/../include/gtest/internal/gtest-port.h:1336: undefined reference to `pthread_getspecific' /home/som/Workspace/CPP/gtest-1.6.0/make/../include/gtest/internal/gtest-port.h:1340: undefined reference to `pthread_key_delete' gtest_main.a(gtest-all.o): In function `testing::internal::ThreadLocal<std::vector<testing::internal::TraceInfo, std::allocator<testing::internal::TraceInfo> > >::GetOrCreateValue() const': /home/som/Workspace/CPP/gtest-1.6.0/make/../include/gtest/internal/gtest-port.h:1372: undefined reference to `pthread_getspecific' /home/som/Workspace/CPP/gtest-1.6.0/make/../include/gtest/internal/gtest-port.h:1379: undefined reference […]
我刚开始一个需要一些跨平台GUI的新项目,而且我们select了Qt作为GUI框架。 我们也需要一个unit testing框架。 直到大约一年前,我们使用内部开发的C ++项目unit testing框架,但是现在我们正在过渡到使用Google Test来进行新项目。 有没有人有任何使用谷歌testingQt应用程序的经验? QtTest / QTestLib是一个更好的select吗? 我仍然不确定在项目的非GUI部分使用Qt有多less – 我们可能更愿意在核心代码中使用STL / Boost,并在基于Qt的GUI上使用一个小接口。 编辑:它看起来像很多倾向于QtTest。 有没有人有任何与持续集成服务器集成的经验? 另外,在我看来,为每个新的testing案例处理一个单独的应用程序会导致很大的摩擦。 有没有什么好方法可以解决这个问题? Qt Creator是否有处理这些testing用例的好方法,或者你需要在每个testing用例中有一个项目吗?
所以我喜欢并且喜欢使用Google Test来参与一个我参与的C ++项目。我只是提出一个新的项目,这个项目将是直线C(一个库),到目前为止看不到任何理由不要继续使用Google Test,尽pipe它是一个C ++框架。 有一个C ++编译器可用不会是一个问题。 是否有具体的原因,我不应该使用谷歌testing直接testingC代码? 谢谢。
我期待在googletesting中比较两个数组。 在UnitTest ++中,这是通过CHECK_ARRAY_EQUAL完成的。 你如何在谷歌testing中做到这一点?
我正在尝试开始unit testing。 我下载了gtest的最新版本,并将其提取到A:\gtest作为指定的指示,我打开gtest.sln。 Visual Studio只允许我打开sln,如果我同意更新它。 然后当我尝试build立时,我得到一堆错误: 1>—— Build started: Project: gtest, Configuration: Debug Win32 —— 1> gtest-all.cc 1>a:\gtest\include\gtest\gtest-printers.h(550): error C2977: 'std::tuple' : too many template arguments 1> b:\program files (x86)\microsoft visual studio 2012\vc\include\utility(73) : see declaration of 'std::tuple' 1>a:\gtest\include\gtest\gtest-printers.h(558): error C2977: 'std::tuple' : too many template arguments 1> b:\program files (x86)\microsoft visual studio 2012\vc\include\utility(73) : […]
在为未来几年设置C ++unit testing框架的过程中,我们将GoogleTest和CppUnit列入了名单。 我有两个经验,我的重点是GoogleTest。 无论如何说服我的老板,我需要一些事实,所以我做了一些在互联网上阅读,包括手册,维基页面和一些来源。 我想出了一个GoogleTest优势列表和一个CppUnit优势(graphicstesting运行者)。 在这里,他们按照感知的有用性sorting: INSTANTIATE_TEST_CASE_P用任何你想要的参数来实例化一个testing用例,包括笛卡尔积 FRIEND_TESTtesting私人类成员(所有的遗留代码) 把断言变成断点 非致命的断言 “开箱即用”googlemock整合 自动testing检测,不需要枚举它们 testing可以被禁用和启用 可以使用名称模式来select要运行的testing 值/types参数化testing 用户定义的谓词断言 死亡testing 断言更为丰富 键入断言 断言子程序 可以使用<<将更多的debugging信息添加到断言 RecordProperty将最后一个属性值发送到XML输出 SCOPED_TRACE有助于理解来自子例程或循环内部的断言失败的上下文。 xUnit XML输出,可以由Jenkins马上显示,而不需要XSLT转换 支持自定义types打印机 testing指示消耗的时间(我怀疑CppUnit也可以这样做,但我还没有想到) testing事件监听器API(用户定义的插件) testing洗牌 没有例外和RTTI 我是否正确地认为CppUnit不支持上述所有内容? CppUnit中有没有有用的GoogleTestfunction? 最后但并非最不重要的一点是:GoogleTest有什么好的CppUnitfunction? 谢谢!
Debian不再为gTest提供任何预编译的软件包。 他们build议你把框架整合到你的项目makefile中。 但是我想保持我的make文件干净。 如何设置gTest像以前的版本(<1.6.0),以便我可以链接aganist图书馆?
我正在尝试为我的项目编写一个函数/方法,它会询问用户要运行哪个testing用例? 它看起来像下面…, Test_Cases_1 |_TestNo1 |_TestNo2….so on Test_Cases_2 |_TestNo1 |_TestNo2….so on …. ….so on Test_Cases_N |_TestNo1 |_TestNo2….so on 所以,现在面临的挑战是在运行项目的时候,它会提示我要执行什么样的testing用例? 如果我selectTest_Cases_1和Test_Cases_N 。 那么它应该执行这两个testing用例,并且应该从Test_Cases_2 to ….排除所有其他的Test_Cases_2 to …. 在结果窗口中,我还想看看Test_Cases_1和Test_Cases_N的结果。 所以,如果我看到GoogleTest,就有一个名为test_case_to_run_count()的方法。 但是所有的test cases都使用Test_F()方法进行注册。 所以,我做了很多分析,但还是没有find任何解决办法。 请帮帮我。