Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cmake gtest运行错误:目标的配方';测试';失败_Cmake_Googletest - Fatal编程技术网

Cmake gtest运行错误:目标的配方';测试';失败

Cmake gtest运行错误:目标的配方';测试';失败,cmake,googletest,Cmake,Googletest,我正在使用gtest,当一个测试用例在类型之后失败时发生了一些错误 $make test: Running tests... Test project /home/wangfrank/GitRootPath/qwer/http_server_client_practice/bin Start 1: case-2_nettools_test 1/3 Test #1: case-2_nettools_test .............***Failed 0.00 sec [=====

我正在使用gtest,当一个测试用例在类型之后失败时发生了一些错误

$make test

Running tests...
Test project /home/wangfrank/GitRootPath/qwer/http_server_client_practice/bin
    Start 1: case-2_nettools_test
1/3 Test #1: case-2_nettools_test .............***Failed    0.00 sec
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from test_case_2
[ RUN      ] test_case_2.test_ipv4addr_constructor
32512
/home/wangfrank/GitRootPath/qwer/http_server_client_practice/test/2_nettools_test.cpp:12: Failure
      Expected: ip_s_0
      Which is: "127.0.0.1"
To be equal to: ip_s_1
      Which is: "32512"
[  FAILED  ] test_case_2.test_ipv4addr_constructor (0 ms)
[----------] 1 test from test_case_2 (0 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (0 ms total)
[  PASSED  ] 0 tests.
[  FAILED  ] 1 test, listed below:
[  FAILED  ] test_case_2.test_ipv4addr_constructor

 1 FAILED TEST

    Start 2: case-0_config_test
2/3 Test #2: case-0_config_test ...............   Passed    0.00 sec
    Start 3: case-1_facility_test
3/3 Test #3: case-1_facility_test .............   Passed    0.01 sec

67% tests passed, 1 tests failed out of 3

Total Test time (real) =   0.01 sec

The following tests FAILED:
          1 - case-2_nettools_test (Failed)
Errors while running CTest
Makefile:116: recipe for target 'test' failed
make: *** [test] Error 8
我的CMakeLists.txt是这样的:

 17 message("==== ENTRY ==== ${unittest_SOURCE_DIR}")                                                                                                                                                               
 18 file(GLOB TESTFILES ./ *.cpp)                                                                                                                                                                                   
 19 foreach(singletestfilename ${TESTFILES})                                                                                                                                                                        
 20     get_filename_component(tn ${singletestfilename} NAME_WE)                                                                                                                                                    
 21     message("==== do with file target : ${tn}")                                                                                                                                                                 
 22     add_executable(${tn} ${singletestfilename})                                                                                                                                                                 
 23     target_link_libraries(${tn} gtest gtest_main)                                                                                                                                                               
 24     target_link_libraries(${tn} ${MY_EXTRA_LIBS})                                                                                                                                                               
 25     add_test(NAME case-${tn}                                                                                                                                                                                    
 26         COMMAND ${tn})                                                                                                                                                                                          
 27 endforeach(singletestfilename)
下面是该测试文件

  1 #include "nettools.h"                                                                                                                                                                                           
  2 #include "facility.h"                                                                                                                                                                                           
  3 #include "gtest/gtest.h"                                                                                                                                                                                        
  4                                                                                                                                                                                                                 
  5 TEST(test_case_2, test_ipv4addr_constructor) {                                                                                                                                                                  
  6     using my_http::Ipv4Addr;                                                                                                                                                                                    
  7     Ipv4Addr test_ip = Ipv4Addr("localhost", 1234);                                                                                                                                                             
  8     std::cout << test_ip.get_ip_str() << std::endl;                                                                                                                                                             
  9     std::string ip_s_0 = Ipv4Addr::host2ip_str("localhost");                                                                                                                                                    
 10     std::string ip_s_1 = test_ip.get_ip_str();                                                                                                                                                                  
 11     EXPECT_EQ(ip_s_0, ip_s_1);                                                                                                                                                                                  
 12 }                                                                                                                                                                                                               
 13                                                                                                                                                                                                                 
 14 int main(int argc, char **argv) {                                                                                                                                                                               
 15     ::testing::InitGoogleTest(&argc, argv);                                                                                                                                                                     
 16     return RUN_ALL_TESTS();                                                                                                                                                                                     
 17 }        
1#包括“nettools.h”
2#包括“设施h”
3#包括“gtest/gtest.h”
4.
5测试(测试用例2,测试ipv4addr构造函数){
6使用my_http::Ipv4Addr;
7 Ipv4Addr测试\u ip=Ipv4Addr(“本地主机”,1234);

8 std::cout请使用
--output on failure
选项重新运行ctest,并用输出更新您的问题。这也可能有助于显示失败测试用例的源代码。否则,我们这里没有足够的信息来帮助您。@CraigScott感谢您的建议。您为什么认为这是googl的问题etest,但不是使用测试库或测试本身?您有失败的测试代码。您是否尝试从中创建独立的可执行文件并运行?@Tsyvarev如果您是指在/bin/test下运行**2_nettools_测试**,我这样做了,但没有发生错误。因为此问题中指出的错误是makefile的n错误,这不会导致错误影响可解释性。我已经更新了我的问题,谢谢你的申请。请使用
--output on failure
选项重新运行ctest,并用输出更新你的问题。这也可能有助于显示失败测试用例的源代码。没有这些,我们这里没有足够的信息来帮助你。@CraigScott感谢你的帮助建议。为什么你认为这是googletest的问题,而不是被测试的库或测试本身的问题?你有失败的测试代码。你是否尝试从它创建独立的可执行文件并运行?@Tsyvarev如果你是说在/bin/test下运行**2\u nettools\u测试**,我做了,但没有发生错误。因为在这个问题是makefile的一个错误,不会影响可执行性。我已经更新了我的问题,谢谢你的申请。