草庐IT

javascript - 如何告诉 Sonar 使用我的 LCOV 文件进行代码覆盖

我们有一个包含一堆javascript文件的Jenkins作业。我们通过grunt构建我们的项目,并在构建结束时运行JSCover来运行我们的单元测试并收集代码覆盖率。一切正常。我们得到了一个不错的LCOV文件。我们现在想将LCOV文件上传到Sonar,但我不确定如何执行此操作。我们正在从Jenkins构建我们的项目作为一个自由风格的项目。我尝试使用Sonar的各种项目属性,但没有爱:#projectmetadata(required)sonar.projectKey=my.projectsonar.projectName=MyProjectsonar.projectVersion=1

windows - 在 Windows 中使用 cygwin Perl.exe 运行 genhtml

我正在尝试在Windows中使用来自Cygwin的perl.exe运行genhtml。我已经安装了cygwin,genhtml放在了cygwin的bin目录下。我转到那个目录并在Windows中使用命令行:perlgenhtmlabc.dat其中abc.dat是genhtml的lcov文件的名称。但是我收到一条错误消息:Readingdatafileabc.datgenhtml:ERROR:cannotreadfileabc.dat!我什至尝试了一个空白文件,但返回了同样的错误。我该如何解决这个问题?谢谢。 最佳答案 abc.dat

javascript - 在 Windows 中查看 LCOV 文件

背景:我使用了JsTestDriverCoverage并为我的Javascript单元测试生成了测试覆盖率报告。但是它是LCOV格式。作为在Windows2003上运行的Windows用户,我不能只读取该文件,因为它对perl/lunix很友好。问题:有什么方法可以将文件转换为更易读的格式(使用命令行),或者使用其他应用程序来读取文件?谢谢。 最佳答案 使用genhtml将其转换为一组HTML文件。http://ltp.sourceforge.net/coverage/lcov/genhtml.1.php

javascript - 如何根据Jasmine 的SpecRunner.html 生成LCOV 报告?

我们使用Jasmine进行JavaScript单元测试。我们有一个SpecRunner.html文件来运行测试。是否存在一种工具,我可以将路径传递给SpecRunner.html和JavaScript(不是规范)文件目录的路径,它会生成LCOV报告。例如,像这样:phantomjsjasmine_lcov.jsSpecRunner.htmlWebContent/js 最佳答案 我同意@zaabalonso的观点Karma是正确的选择。由于您需要LCOV报告,因此您还需要karma-coverage插件并假设您想在CI中headles

c++ - constexpr 构造函数不会显示覆盖率数据

今天我将矩阵类重写为constexpr。我对这个类有100%的单元测试覆盖率,但我注意到在我将几乎所有函数转换为constexpr之后,构造函数的一部分在lcov中被标记为根本不再被覆盖。这是只有构造函数的类。templateclassMatrix{static_assert(std::is_arithmetic::value,"Matrixcanonlybedeclaredwithatypewhere""std::is_arithmeticistrue.");public:constexprMatrix(std::initializer_list>matrix_data){if(ma

c++ - lcov 将带有函数声明的行标记为可达但未被覆盖

我正在尝试使用lcov(v1.13,在OSX上,使用clang作为编译器)为我的测试套件生成代码覆盖率,但我遇到了一个我不知道如何解决的恼人问题。SO上有几个类似的问题,但我找不到这个问题的解决方案。出于某种原因,函数/成员声明被标记为可访问但未执行,有点像下面的示例(这是header中的内联方法定义):这会使行覆盖率指标变得无用,所以我希望有一种方法可以修复它,而无需将每个声明都标记为LCOV_EXCL_LINE。使用的编译器标志非常标准:-g-O0-fno-inline-ftest-coverage-fprofile-arcs-fno-elide-constructors奇怪的是,

c++ - 如何在宏中排除 lcov 分支

我的代码中有一些日志记录宏:#defineLOG_MSG(pri,msg,...)\if(pri>PriorityLevel)\printf(msg,##\__VA_ARGS__);我知道我可以使用LCOV_EXCL_START、LCOV_EXCL_STOP或LCOV_EXCL_LINE来抑制分支。但这只有在我调用LOG_MSG的每个地方都添加它时才有效:LOG_MSG(ERROR,"发生错误\n");//LCOV_EXCL_LINE我想在宏中包含该注释,但如果我将它放在那里,LCOV无法识别它。例如,这段代码仍然会产生分支。#defineLOG_MSG(pri,msg,...)\if

c++ - LCOV 在函数末尾分支

这个函数的末尾有哪些分支。我该如何覆盖它们? 最佳答案 您正在观察gcc生成的用于销毁静态存储持续时间(全局)变量的代码。您的覆盖显示函数foo已被输入3次,但是范围末尾附近的计数器显示代码已执行8次,包括您查询的分支。现在您必须考虑编译器将头文件放在翻译单元中并且gcov不会完全按照原样查看您的代码,而是将其作为汇编指令的控制流图,分支作为图的边缘.因此,lcovhtml输出中的“foo作用域结束”实际上并不是foo方法作用域的结束,而是foo之后包含的所有内容以及整个翻译单元,包括销毁已在头文件中声明的全局变量。header本身

html - 寻找一种方法来排除 geninfo/genhtml 使用的文件

我们正在尝试使用geninfo和genhtml(替代gcovr,请参阅here)使用gcov提供的覆盖率生成html页面。geninfo从gcov的*.gcda文件创建lcov-tracefilesgenhtml从上述跟踪文件生成html文件然而,最终结果不仅包括我们的代码,还包括/usr/include中的文件。有谁知道排除这些的方法吗?我尝试查看手册页但找不到任何内容http://linux.die.net/man/1/geninfo 最佳答案 如果您只想忽略/usr/include中的文件,更好的选择可能是“--no-exte

html - 寻找一种方法来排除 geninfo/genhtml 使用的文件

我们正在尝试使用geninfo和genhtml(替代gcovr,请参阅here)使用gcov提供的覆盖率生成html页面。geninfo从gcov的*.gcda文件创建lcov-tracefilesgenhtml从上述跟踪文件生成html文件然而,最终结果不仅包括我们的代码,还包括/usr/include中的文件。有谁知道排除这些的方法吗?我尝试查看手册页但找不到任何内容http://linux.die.net/man/1/geninfo 最佳答案 如果您只想忽略/usr/include中的文件,更好的选择可能是“--no-exte