gpt4 book ai didi

c++ - CMake/CTest 代码覆盖检查

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:17:27 34 4
gpt4 key购买 nike

我可以在 this 之后使用 cmake 运行覆盖率检查维基页面。这非常简单,只需设置一个仪表板,我就可以在浏览器上很好地查看代码覆盖率(后一部分)。但我不想每次都 ctest 只是为了检查单个文件的进度。事实上,我想在本地检查子目录的代码覆盖率,而不是使用第三方代码的 entre 库。

那么,我们如何检查子目录的代码覆盖率。当然,我使用 add_test(....) 在 cmakelists.txt 中编写了一个测试。

我将尝试在没有任何代码的情况下进行一些解释。

Class A {   
public:
A() {}

....
so many methods ..
....

protected:
~A() {}
}; //end class A

接下来我写了一个测试:

//testA
int main()
{
A *a = new A();

a->method1();

a->method2();
...
}

现在在 CMakeLists.txt 中,我有:

add_test(testA ...)

因此,当我运行 ctest 时,它将运行所有测试,包括 TestA。当然,我可以使用ctest -R "TestA"

现在回到问题上来,我怎样才能只检查 A 类 的覆盖率。不运行所有测试还是只运行 testA

最佳答案

我创建了一个 cmake 脚本,它生成用于 http://coveralls.io/ 的覆盖率数据。服务(开源项目免费)。

该脚本允许您准确指定要从中收集代码覆盖率的文件(与允许您排除文件的大多数脚本相比)。因此,您可以 file(GLOB 您感兴趣的文件或手动指定它们。也可以修改此脚本以简单地运行 lcov 并生成本地 html 报告。

https://github.com/JoakimSoderberg/coveralls-cmake https://github.com/JoakimSoderberg/coveralls-cmake-example

如果http://coveralls.io/你不感兴趣,这是另一个使用 lcov 简单地生成本地 html 报告的脚本:

https://github.com/bilke/cmake-modules/blob/master/CodeCoverage.cmake

关于c++ - CMake/CTest 代码覆盖检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24286349/

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