标签: googletest

在jenkins中使用gtest

我在Jenkins中使用google测试成功运行了我的单元测试,但我不知道如何显示gtest生成的.xml文件.据说gtest满足JUnit格式,所以我设置如下:

截图

但它最终会在建筑物后出现错误.

未找到任何测试报告文件.配置错误?
构建步骤'发布JUnit测试结果报告'将构建结果更改为FAILURE
完成:FAILURE

googletest jenkins

24
推荐指数
2
解决办法
3万
查看次数

测试正文中抛出代码为0xc0000005的SEH异常

我正在使用GoogleTest为以下课程编写测试,我收到了上述错误.

class Base
{
    // Other Functions;

    CSig objSig[50];
}
Run Code Online (Sandbox Code Playgroud)

Class CSig如下:

class CSig
{
    //... constructor, destructor(empty) and some functions
    CMod *objMod;
    CDemod *objDemod;
}

CSig :: CSig
{
    bIsInitialised = false;

    for (int i=0; i<MAX_NUM; i++)
    {
        PStrokePrev[i] = 0.0;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我丢弃时CSig objSig[50],测试运行正常.

我该怎么做才能解决这个问题?另外,我需要CSig objSig[50]在Base类中.

c++ tdd googletest visual-c++

24
推荐指数
3
解决办法
4万
查看次数

wxWidgets:如何在不使用宏的情况下初始化wxApp而不进入主应用程序循环?

我们需要使用Google Test FrameworkwxWidgets应用程序编写单元测试.问题是wxWidgets使用宏IMPLEMENT_APP(MyApp)来初始化并进入应用程序主循环.这个宏创建了几个函数,包括int main().谷歌测试框架还为每个测试使用宏定义.

其中一个问题是无法从测试宏中调用wxWidgets宏,因为第一个宏创建函数.所以,我们发现我们可以用以下代码替换宏:

wxApp* pApp = new MyApp(); 
wxApp::SetInstance(pApp);
wxEntry(argc, argv);
Run Code Online (Sandbox Code Playgroud)

这是一个很好的替代品,但是wxEntry()调用进入原始的应用程序循环.如果我们不调用wxEntry(),仍然有一些应用程序的部分未初始化.

问题是如何初始化运行wxApp所需的所有内容,而不实际运行它,因此我们能够对其中的部分进行单元测试?

c++ wxwidgets unit-testing googletest

23
推荐指数
3
解决办法
2万
查看次数

_stricmp与mingw和c ++ 0x不存在?

我目前正在尝试使用googletest与MinGW,-std=c++0x但它抱怨_stricmp is not declared in this scope当我不使用它时它不会-std=c++0x.我不知道是什么_stricmp,我刚刚发现它已定义cstring/string.h,所以为什么它在C++ 0x中消失了?

c++ mingw googletest c++11

21
推荐指数
2
解决办法
7821
查看次数

Google Test:使用现有测试夹具类的参数化测试?

我有一个测试夹具类,目前许多测试都使用它.

#include <gtest/gtest.h>
class MyFixtureTest : public ::testing::Test {
  void SetUp() { ... }
};
Run Code Online (Sandbox Code Playgroud)

我想创建一个参数化测试,它也使用MyFixtureTest提供的所有功能,而无需更改我现有的所有测试.

我怎么做?

我在网上发现了类似的讨论,但还没有完全理解他们的答案.

c++ unit-testing googletest

20
推荐指数
2
解决办法
3万
查看次数

将模板参数传递给宏的方法

我无法将Google Test的ASSERT_THROW()宏与多个模板参数结合使用.考虑一下我想确保Matrix<5,1>抛出的构造:

ASSERT_THROW(Matrix<5,1>(), std::runtime_error);
Run Code Online (Sandbox Code Playgroud)

(这个例子没有多大意义,当然这不应该抛出,但它是在简化我所拥有的之后留下的.)

我从MS VC++ 2008获得此输出:

warning C4002: too many actual parameters for macro 'ASSERT_THROW'
error C2143: syntax error : missing ',' before ';'
Run Code Online (Sandbox Code Playgroud)

虽然没有问题:

ASSERT_THROW(Matrix<1>(), std::runtime_error);
Run Code Online (Sandbox Code Playgroud)

我怎样才能克服这个问题?

谢谢!

c++ macros googletest

20
推荐指数
3
解决办法
5467
查看次数

googletest:如何设置?

我正在使用Linux机器.我从这里下载了googletest软件包

但是,没有关于如何正确设置的安装指南或其他博客自述文件是不行的,我无法理解它在说什么?

任何人都可以提供一个简单的例子来说明如何使用该gtest包测试.cc文件中的简单函数吗?

c++ linux unit-testing googletest

20
推荐指数
2
解决办法
2万
查看次数

如何在通过autotools构建的项目中使用Google Test?

似乎有一些答案是那种,有点理智,但我不知道如何执行.我还没有找到一个全面的答案.

第一个问题

Google Test不应该是已安装的库,它应该与项目一起构建.(请参阅常见问题解答.)据我所知,这意味着Google Test库是我单元测试的依赖项,应该在我第一次在项目中运行"make check"时构建.这应该在某个目录中构建Google Test库.我不知道该怎么做.它提到了一些被弃用的autotools脚本,我不确定他们在谈论什么,或者如何正确地指出我的构建.

第二个问题

假设构建成功,我如何编写使用我的本地编译版Google Test运行测试的测试?我假设我在test目录中放了一堆Makefile.am命令.但他们是什么?什么是使用Google Test的单元测试的例子?

c++ automated-tests unit-testing autotools googletest

20
推荐指数
1
解决办法
6373
查看次数

Google测试夹具

我正在尝试了解Google测试夹具的工作原理.

说我有以下代码:

class PhraseTest : public ::testing::Test
{
     protected:
     virtual void SetUp()
     {      
         phraseClass * myPhrase1 = new createPhrase("1234567890");
         phraseClass * myPhrase2 = new createPhrase("1234567890");  
     }

     virtual void TearDown()
    {
        delete *myPhrase1;
        delete *myPhrase2;  
     }
};



TEST_F(PhraseTest, OperatorTest)
{
    ASSERT_TRUE(*myPhrase1 == *myPhrase2);

}
Run Code Online (Sandbox Code Playgroud)

当我编译时,为什么在TEST_F中声明"myPhrase1"和"myPhrase2"未声明?

c++ testing googletest

19
推荐指数
1
解决办法
3万
查看次数

生成Google C++单元测试XML报告

我是新手使用Google测试框架进行单元测试,并打算生成测试的XML报告或命令输出作为报告(我可以显然打印它).我已阅读有关生成XML报告的信息,但未能清楚地了解如何生成报告.任何帮助将不胜感激.

干杯.

xml unit-testing report googletest

19
推荐指数
4
解决办法
3万
查看次数