How can I use Google Test with my project that builds via autotools?

后端 未结 3 1148
广开言路
广开言路 2020-12-24 02:35

It seems like there are a few answers that kind-of, sort-of make sense, but that I don\'t know how to carry out. And I haven\'t found a comprehensive answer.

The Fi

3条回答
  •  一向
    一向 (楼主)
    2020-12-24 03:18

    Here is a sample Makefile.am for the unit test project (project name: TestProject). It depends on GTEST and GMOCK:

    Makefile.am

    #######################################
    # The list of executables we are building seperated by spaces
    # the 'bin_' indicates that these build products will be installed
    # in the $(bindir) directory. For example /usr/bin
    #bin_PROGRAMS=exampleProgram
    
    # Because a.out is only a sample program we don't want it to be installed.
    # The 'noinst_' prefix indicates that the following targets are not to be
    # installed.
    noinst_PROGRAMS=utTestProject
    
    #######################################
    # Build information for each executable. The variable name is derived
    # by use the name of the executable with each non alpha-numeric character is
    # replaced by '_'. So a.out becomes a_out and the appropriate suffex added.
    # '_SOURCES' for example.
    
    # Sources for the a.out 
    utTestProject_SOURCES= \
        utTestProject.cpp
    
    # Library dependencies
    utTestProject_LDADD = \
        $(top_srcdir)/../TestProject/build/${host}/libTestProject/.libs/libTestProject.a \
        ../$(PATH_TO_GTEST)/lib/libgtest.a \
        ../$(PATH_TO_GMOCK)/lib/libgmock.a 
    
    # Compiler options for a.out
    utTestProject_CPPFLAGS = \
        -std=c++11 \
        -I../$(PATH_TO_GTEST)/include \
        -I../$(PATH_TO_GMOCK)/include \
        -I$(top_srcdir)/include \
        -I$(top_srcdir)/..
    
    TESTS = utTestProject
    
    TESTS_ENVIRONMENT = export UT_FOLDER_PATH=$(top_srcdir)/utTestProject; \
                        export GTEST_OUTPUT="xml";
    

    Compiling gtest:

    # Useful vars
    SourceVersionedArchiveFolderName="gtest-1.7.0"
    
    #
    # Make it
    #
    pushd .
    cd ./${SourceVersionedArchiveFolderName}/make
    
    make gtest.a
    if [ $? != 0 ]; then
        echo "$0: Make failed"
        exit 1
    fi
    
    popd
    

提交回复
热议问题