gpt4 book ai didi

testing - 如何使用 CTest 检查两个文件之间的差异?

转载 作者:行者123 更新时间:2023-11-28 19:52:41 28 4
gpt4 key购买 nike

我正在尝试为某些遗留软件创建一些集成测试。当前进行测试的方法是使用已知输入运行代码,然后手动将输出与已知输出进行比较。

我想自动化这个过程,因为我已经在使用 CMake 我想用 CTest 来做这个。我有大约两打输入/输出需要检查。

执行此操作的正确方法是什么?我对 CMake 的经验不多,对 CTest 的经验就更少了。

最佳答案

您可以使用 PASS_REGULAR_EXPRESSION实现这一目标的测试属性。

假设您有代码接受单个 int 输入并输出短语“The result is”并附加 10*input。所以例如在 C++ 中是这样的:

#include <iostream>
#include <cstdlib>

int main(int argc, const char* argv[]) {
if (argc != 2)
return -1;
std::cout << "The result is " << 10 * std::atoi(argv[1]) << '\n';
return 0;
}

然后您可以使用 CTest 对此进行测试:

cmake_minimum_required(VERSION 3.0)
project(Example)

add_executable(example main.cpp)

include(CTest)

set(Inputs 1 2 3)
foreach(Input ${Inputs})
add_test(NAME Test${Input} COMMAND example ${Input})
set_tests_properties(Test${Input} PROPERTIES
PASS_REGULAR_EXPRESSION "The result is ${Input}0")
endforeach()

关于testing - 如何使用 CTest 检查两个文件之间的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29154403/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com