- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚下载了 cxxtest 的 4.4 版并将我的 zip 文件解压到这个路径:C:/cxxtest-4.4。紧接着,我没有执行任何其他步骤,而是打开了 CLion 并尝试将 CxxTest 添加到我的项目中,如下所示:
set(CXXTEST_PYTHON_TESTGEN_EXECUTABLE C:/cxxtest-4.4/python/cxxtest/cxxtestgen.py)
find_package(CxxTest REQUIRED)
if(CXXTEST_FOUND)
set(SOURCE_FILES main.cpp Calculator.h TestCalculator.h Calculator.cpp TestCalculator.h)
add_executable(Calculator ${SOURCE_FILES})
endif()
我必须手动设置这两个变量,否则会出现以下错误:
"C:\Program Files (x86)\JetBrains\CLion 2017.1\bin\cmake\bin\cmake.exe" -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - MinGW Makefiles" C:\Users\Admin\CLionProjects\Calculator
CMake Error at C:/Program Files (x86)/JetBrains/CLion 2017.1/bin/cmake/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:138 (message):
Could NOT find CxxTest (missing: CXXTEST_PYTHON_TESTGEN_EXECUTABLE)
Call Stack (most recent call first):
C:/Program Files (x86)/JetBrains/CLion 2017.1/bin/cmake/share/cmake- 3.7/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
C:/Program Files (x86)/JetBrains/CLion 2017.1/bin/cmake/share/cmake- 3.7/Modules/FindCxxTest.cmake:221 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:9 (find_package)
-- Configuring incomplete, errors occurred!
See also "C:/Users/Admin/CLionProjects/Calculator/cmake-build- debug/CMakeFiles/CMakeOutput.log".
现在一切正常,这是我的 Cmake 调试:
"C:\Program Files (x86)\JetBrains\CLion 2017.1\bin\cmake\bin\cmake.exe" - DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - MinGW Makefiles" C:\Users\Admin\CLionProjects\Calculator
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/Admin/CLionProjects/Calculator/cmake-build-debug
当我现在尝试在头文件中使用 cxxtest/TestSuite.h 时,它说找不到它。这快把我逼疯了,拜托,我需要你的帮助!
提前致谢!
编辑:我设法链接了它,现在我可以找到头文件,将这一行添加到 CMake 文件中:
include_directories(C:/cxxtest-4.4)
现在,当我构建时,我得到以下输出:
"C:\Program Files (x86)\JetBrains\CLion 2017.1\bin\cmake\bin\cmake.exe" -- build C:\Users\Admin\CLionProjects\Calculator\cmake-build-debug --target Calculator -- -j 8
[ 33%] Linking CXX executable Calculator.exe
CMakeFiles\Calculator.dir/objects.a(main.cpp.obj): In function ` ZN7CxxTest7trackerEv':
C:/cxxtest-4.4/cxxtest/TestTracker.h:130: undefined reference to `CxxTest::TestTracker::tracker()'
CMakeFiles\Calculator.dir/objects.a(main.cpp.obj): In function `ZN7CxxTest14numberToStringIlEEPcT_S1_S2_jj':
C:/cxxtest-4.4/cxxtest/ValueTraits.h:183: undefined reference to `CxxTest::digitToChar(unsigned int)'
CMakeFiles\Calculator.dir/objects.a(main.cpp.obj): In function `ZN7CxxTest14doAssertEqualsIiiEEvPKciS2_T_S2_T0_S2_':
C:/cxxtest-4.4/cxxtest/TestSuite.h:146: undefined reference to `CxxTest::doAbortTest()'
CMakeFiles\Calculator.dir/objects.a(main.cpp.obj):main.cpp:(.rdata$_ZTV14TestCalculator[__ZTV14TestCalculator]+0x14): undefined reference to `CxxTest::TestSuite::tearDown()'
CMakeFiles\Calculator.dir/objects.a(main.cpp.obj): In function `ZN14TestCalculatorD1Ev':
C:/Users/Admin/CLionProjects/Calculator/TestCalculator.h:8: undefined reference to `CxxTest::TestSuite::~TestSuite()'
collect2.exe: error: ld returned 1 exit status
CMakeFiles\Calculator.dir\build.make:123: recipe for target 'Calculator.exe' failed
CMakeFiles\Makefile2:66: recipe for target 'CMakeFiles/Calculator.dir/all' failed
CMakeFiles\Makefile2:78: recipe for target 'CMakeFiles/Calculator.dir/rule' failed
mingw32-make.exe[3]: *** [Calculator.exe] Error 1
Makefile:117: recipe for target 'Calculator' failed
mingw32-make.exe[2]: *** [CMakeFiles/Calculator.dir/all] Error 2
mingw32-make.exe[1]: *** [CMakeFiles/Calculator.dir/rule] Error 2
mingw32-make.exe: *** [Calculator] Error 2
最佳答案
不确定这是否仍然是个问题,请查看 CMake 文档 CMake CxxTest 的文档。
从您的示例 CMakeLists 文件来看,您似乎对普通项目文件进行了剪切和删除。您不能包含 main.cpp 文件 CxxTest 会根据您的测试定义文件生成一个名为 runner.cpp 的文件。
因此 CMakeFiles.txt 中的 CxxTest 部分应如下所示:
set(CMAKE_PREFIX_PATH ${CMAKE_SOURCE_DIR}/deps/cxxtest/bin)
find_package(CxxTest REQUIRED)
if(CXXTEST_FOUND)
include_directories(${CXXTEST_INCLUDE_DIR})
enable_testing()
CXXTEST_ADD_TEST(tests
runner.cpp # THIS IS GENERATED BUT YOU NEED TO ADD IT HERE
c:/libraries/boost_1_63_0/boost/filesystem.hpp # THIS SHOULD NOT BE HARD CODED
${CMAKE_SOURCE_DIR}/source/string_tokenizer.cpp # YOUR PROJECT FILES THAT WILL BE USED FOR YOUR TEST
${CMAKE_CURRENT_SOURCE_DIR}/tests/test_stringtokenizer.h # YOUR TEST DESCRIPTION FILE
)
target_link_libraries(tests ${Boost_LIBRARIES}) # LINK BOOST / OTHER THIRD PARTY LIBS TO YOUR TEST
endif()
希望这对您有所帮助。
关于c++ - 在 CMake 中链接 CxxTest,它说它成功但无法构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43832065/
我希望动态扩展我的 CxxTest Suite有额外的测试项目,但我发现所有测试场景必须在编译时可用(硬编码)。 我的场景是我有一个相当庞大的 C++ 类,其中有 20 多个方法要测试。此类需要针对
我编写了以下CMakeLists.txt 以使用CxxTest 构建测试器(这几乎是FindCxxTest 提供的标准示例): cmake_minimum_required(VERSION 2.8)
这是一个奇怪的问题,我不知道该怎么做。 我有如下内容: struct Parms { const std::string value1; const std::string value
我希望你能帮助我。我在我的主要开发机器上使用 CxxTest 编写了一个小项目。在这台机器上一切正常,没有问题。但是,我尝试在我全新的笔记本电脑上设置这个项目,但无法让它工作!我怀疑我的 MinGW
我正在使用 CxxTest 进行单元测试。我跟着文档。 我执行的第一个命令是: cxxtestgen --error-printer -o runner.cpp MyTestSuite1.h 命令的输
我目前正在做一个项目,我使用: boost 库 v1.39 Eclipse CDT (Juno) 和 Cygwin CxxTest 插件:http://wiki.web-cat.org/WCWiki/
我正在尝试为我的 open source project hosted on Github 添加 Travis-Ci 支持 CMake 尝试查找 CxxTest 时出现问题。 Travis-Ci 在旧
我刚刚下载了 cxxtest 的 4.4 版并将我的 zip 文件解压到这个路径:C:/cxxtest-4.4。紧接着,我没有执行任何其他步骤,而是打开了 CLion 并尝试将 CxxTest 添加到
我需要在我的对象中临时放置一个 main() 函数来测试替代功能(除了简单的单元测试),但我一直不得不注释掉我的 main() 运行我的单元测试的函数。 是否有 CxxTest 的 #define _
CxxTest documentation有一个生成和运行单元测试的 Makefile 示例。我如何为 automake (Makefile.am) 做同样的事情? 最佳答案 我通过在 tests 目
我正在尝试在 Eclipse 上使用 CxxTest 框架执行测试用例。按照本网站上的说明进行操作后 - http://web-cat.cs.vt.edu/eclipse/cxxtest/ 我能够构建
我有一组使用 gtest 作为框架的单元测试。 构建并执行,输出如下所示: 我希望输出类似于使用 cxxunit 时的输出(. 测试通过时,失败时详细错误)。如果可能的话,用颜色。 如何做到这一点?
我不确定是否理解我收到的 undefined reference 。 ./cxxtest/cxxtestgen.py -o tests.cpp --error-printer DrawTestSuit
是否可以使用 cxxunit或任何其他单元测试框架(不包括 QtTestLib )来测试 qt 小部件? 如果是,那么还有两个问题: 如何? 由于我正在使用 valgrind 运行单元测试,这会报告一
我与一个开发基于 MPI 的 C++ 数值应用程序的团队合作。该小组使用 cxxtest 来构建单独的单元测试或小型套件,但是 1) 跨目录聚合具有 cxxtest 的常用功能存在一些复杂性,并且 2
我是一名优秀的程序员,十分优秀!