- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用yaml-cpp库(v 0.6.0)来解析yaml配置文件。 Yaml-cpp作为系统库安装。
我做了一个Parser
类,它检查yaml节点中的键值对。 Parser
类被构建为ConfigParserLibrary
静态库。
现在,我想使用Parser
测试CppUTest
类。使用CMake
构建项目。示例代码:
CMakeLists:
cmake_minimum_required(VERSION 3.9)
project(yaml-parser VERSION 0.1.0)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# ConfigParserLibrary lib
include_directories(${PROJECT_SOURCE_DIR}/include/config_parser_lib)
file(GLOB_RECURSE LIB_CONFIG_PARSER_SRC "config_parser_lib/Parser.cpp")
add_library(ConfigParserLibrary STATIC ${LIB_CONFIG_PARSER_SRC})
target_link_libraries(ConfigParserLibrary yaml-cpp)
# Executable that uses ConfigParserLibrary
add_executable(conf_reader "config_reader.cpp")
target_link_libraries(conf_reader yaml-cpp ConfigParserLibrary)
message(STATUS "Library tests will be built.")
add_library(ConfigParserTests STATIC tests/ConfigParserTests.cpp)
target_link_libraries(ConfigParserTests ConfigParserLibrary yaml-cpp)
add_executable(RunLibTests tests/RunTests.cpp)
target_link_libraries(RunLibTests CppUTest CppUTestExt
ConfigParserTests ConfigParserLibrary yaml-cpp)
add_test(NAME test_library COMMAND RunLibTests)
/usr/include/c++/8/optional:208: error: expected type-specifier before ‘(’ token
::new ((void *) std::__addressof(this->_M_payload))
^
。
#pragma once
#include <yaml-cpp/yaml.h>
class Parser{
public:
int parseNode(YAML::Node configNode);
};
#include "config_parser_lib/Parser.hpp"
int Parser::parseNode(YAML::Node configNode){
return valueA = configNode["keyA"].as<int>();
}
#include <CppUTest/TestHarness.h>
#include "config_parser_lib/Parser.hpp"
TEST_GROUP(ConfigParserTests) {
};
TEST(ConfigParserTests, ParseConfigNode){
}
#include <CppUTest/CommandLineTestRunner.h>
IMPORT_TEST_GROUP(ConfigParserTests);
int main(int ac, const char** av)
{
return CommandLineTestRunner::RunAllTests(ac, av);
}
CMakeLists.txt
中:当我将
CMAKE_CXX_STANDARD
从17更改为11时,出现以下错误
/usr/include/c++/8/bits/stl_tree.h:636: error: ‘__node’ does not name a type
::new(__node) _Rb_tree_node<_Val>;
^~~~~~
。
#include "config_parser_lib/Parser.hpp"
中的
ConfigParserTests.cpp
行,则没有错误。因此,我认为错误来自于包括
<yaml-cpp/yaml.h>
文件。如果我包括
<yaml-cpp/node/node.h>
而不是
yaml.h>
,则没有错误,但是我需要
<yaml-cpp/yaml.h>
文件,其中包含我需要使用的其他 header 。
最佳答案
更改ConfigParserTests.cpp
中的包含顺序可以解决此问题。
#include "config_parser_lib/Parser.hpp"
#include <CppUTest/TestHarness.h>
#include <yaml-cpp/yaml.h>
应该在每个翻译单元的开头。
关于c++ - 使用CppUTest问题 “expected type-specifier before ‘(’ token 进行Yaml-cpp配置解析器测试”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56169986/
我正在尝试重写一些遗留的 C 代码,并希望在实际开始重写之前进行一些测试。为此,我查看了 CppUTest 并尝试了一个示例应用程序,该示例应用程序包含一个头文件 chrtostr.h、一个实现文件
我开始将 CppUTest 用于某些 C/C++ 项目。尤其是模拟扩展听起来不错,但我目前正在努力如何以正确的方式设置模拟。假设一个用于抽象网络套接字通信的低级类。 我的第一种方法: size_t C
我是 mac 新手!我下载了 xcode4.2 并尝试构建 CppUTest-v3 1)当我做的时候,我有以下日志 compiling AllTests.cpp compiling Allocatio
我写了语法:mock().expectNoCall("productionCode") 正如 Cpputest.org 页面所说。但是编译器说 mocksupport 类不支持这种类型的顺序。 tes
我将尝试将此作为一个纯粹的最小示例,以尽可能适用于更多人,并保护可能违反 NDA 的任何类型的代码共享。希望一切都好! 我正在使用 CppUTest 和 CppUMock(使用 gcc/g++ 编译并
我开始在一些 C 嵌入式项目中使用 CppUTest。现在我正在处理对系统的模拟调用。在学习了如何传递 C 典型类型之后,例如: 正常工作的示例: 代码的模拟文件部分: uint32_t LL_TIM
有什么方法可以模拟静态全局变量以在测试函数中使用?或者有什么解决方法吗? 下面是这种情况的示例: static zsock_t *publish_logs = NULL; int btak_log_
我有以下方法: QMap DefaultConfig::getConfig() { QMap result; result.insert("Error", LOG_LOCAL0);
我正在学习 TDD 并在 Eclipse 中使用 CppUTest。有什么方法可以调试我的代码出现烦人的段错误。 谢谢 最佳答案 我不知道 CppUTest 或 Eclipse 中有什么特别的东西可以
我在尝试使用 CPPUTest 测试我的库时遇到问题。 一切都很好,直到我包含 Eigen 库来处理矩阵处理。当我尝试使用 g++ 构建时,Eigen 库不断抛出错误: /eigen3/Eigen/s
我在不在目标硬件上运行的情况下对嵌入式 C 代码进行单元测试。这是代码的一部分: uint8 tempReadback = 0; write_to_i2c( msg->addres, msg->val
我在使用 cppunit 测试我的应用程序时收到此错误消息 Allocation/deallocation type mismatch allocated at file: line: 0 size
我在 eclipse-cdt(ubuntu 14.0) 中使用 CppUTest。对于 CppUTest 中 C 函数的继承,我应该这样写: extern "C" { } 是否有任何替代方案可以将所有
我认为这是一个简单的问题...我希望变量 virtualLeds 在测试组 LedDriverTests 中的所有测试之间共享,这是代码: #include "CppUTest/TestHarness
我用CMake做了一个库,然后做了一个测试exe。构建后,我想自动运行我的测试用例。这是我的 CMakeLists.txt。它使 .exe 正常但不运行它。我正在使用 Linux。 cmake_min
我正在尝试使用 mingw-w64 编译 cpputest,但无法使其工作,而且我找不到有关如何执行此操作的任何资源。所以希望这个问题将来能帮助其他人。 我想使用 mingw-w64 编译 cpput
我使用的是 Atmel Studio 6.1.2 SP2。我正在为我们的嵌入式系统项目设置 CppUTest。我为 CppUTest 框架创建了一个静态 CPP 库,在稍作改动后成功编译。现在我将这个
是否有可能,如果可能如何,用测试框架控制下的定义替换某个定义? 例如,假设嵌入式系统使用定义来访问端口,如下所示: #define PORTA_CONFIG (*(volatile unsigned
在Ubuntu下安装了g++ 4.9.0(实验)版本(我正在使用该版本提供的某些功能) 构建代码时,我使用脚本中的 cmake,并且它可以正确构建。下面的gcc包含g++的安装路径(/mnt...)
我正在开始学习嵌入式C的测试驱动开发,并开始阅读《嵌入式C的测试驱动开发》一书,其中他们推荐了两种开发系统测试环境:Unity和CppUTest。 因此,我决定下载两者的代码,并且下载并安装 Cygw
我是一名优秀的程序员,十分优秀!