我最近升级到了新版本的 gcc/g++/gcov,现在 gcov 的行为很奇怪。新版本声称未涵盖旧版本中涵盖的某些代码行。我设法将我的代码减少到这个最小的示例。
#include <memory>
using namespace std;
struct S {};
int main() {
unique_ptr<S> s;
s = make_unique<S>();
}
Run Code Online (Sandbox Code Playgroud)
然后我使用 编译此文件g++ -O0 -Wall -Wextra -Werror --std=c++17 --coverage,运行结果a.out,然后运行gcov。
生成的.gcov文件包含:
-: 0:Runs:1
-: 1:#include <memory>
-: 2:using namespace std;
-: 3:struct S {};
-: 4:
1: 5:int main() {
#####: 6: unique_ptr<S> s;
1: 7: s = make_unique<S>();
1: 8:}
Run Code Online (Sandbox Code Playgroud)
这与 gcov 的旧版本不同,旧版本声称第 6 行被命中了 2 次。
为什么 gcov 认为第 6 行没有被覆盖?难道我做错了什么? …
我目前正在实现基于MD5哈希算法的RSA数据安全代码,在UpdateData方法中有一节内容如下:
mCount[0] += (length << 3);
if (mCount[0] < (length << 3))
{
mCount[1]++;
}
Run Code Online (Sandbox Code Playgroud)
我现在正在尝试理解if语句如何评估为true(mCount [0]值初始化为0).任何帮助将不胜感激.
谢谢
我在我的代码库上运行Cobertura并获得类,行和分支的覆盖数.
除此之外,我正在寻找一个摘要编号,它告诉我整个代码库的覆盖范围.那当然不够; 详细报告至关重要.但是,只有一个数字可以为我们提供一个可以不断改进的指标.
我在报告中没有看到这样的数字.我在哪里可以找到它?
我正在使用Teamcity 6.0并希望为我们的NUnit测试添加代码覆盖率.
PartCover一直是一个大问题,因为它没有在x64服务器上运行,所以现在我必须去git它并自己构建它:(
另外,jetBrains,如果你知道xslt坏了,让我更容易修复它.
没有任何人有PartCover工作?也许这可能帮助:
http://www.jeremyskinner.co.uk/2010/07/23/using-teamcity-with-partcover-4/
我知道如果我有这样的if语句......
if (x == y) {
foobar++;
} else {
if (x == z) {
foobar++;
}
}
Run Code Online (Sandbox Code Playgroud)
将有4个分支遍历以获得100%的分支覆盖率.2来自外部if - else,1来自内部if语句,另一个来自if if不进入内部if语句.
但是,对于像这样的事情......
if (x == y) {
foobar++;
} else {
while (x < z) {
x++;
}
}
Run Code Online (Sandbox Code Playgroud)
100%分支覆盖还需要4个分支机构吗?也就是说,不会从else语句计数作为单独的分支进入while循环?
谢谢.
我们有一个Android应用程序,我们正在使用Gradle/Android Studio构建,并使用JaCoCo为我们的单元测试生成代码覆盖率报告; 这很有效.我们也有兴趣为手动测试生成覆盖率报告; 也就是说,显示任意应用程序启动中涵盖的代码.似乎JaCoCo的前任EclEmma能够做到这一点,但我无法找到任何关于JaCoCo的确认方式(尽管我开始假设它不可能因为缺乏话语).
我尝试过使用Eclipse中的EclEmma只是为了得到一些东西,但是最新的版本因为这个错误而失败了,我也无法立即使旧版本工作.
任何人都可以确认是否可以使用JaCoCo在任意应用程序启动时生成覆盖数据?如同,运行应用程序,按下按钮,关闭应用程序并获得有关您按下的按钮执行了哪些代码的报告.如果没有,是否有另一种工具可以实现这一目标?
谢谢!
目前我正在使用这些工具来运行我的测试,代码覆盖率和文档:
单元测试:
代码覆盖范围:
文档:
因为我正在尝试为前端和后端做所有模块化工作,我们有多个bower组件和nuget包,当然每个组件运行不同类型的测试和文档.
现在我想做的是拥有一个专门的网站,它可以获取所有的测试结果和文档,并有一个专门的网站,所有开发人员等都可以将它作为参考点.
有没有可以帮助我实现它的插件?
如果没有,你有什么想法我可以从哪里开始,因为我尝试谷歌搜索,但没有运气.
我正在尝试测试tSQLt的代码覆盖率.
我在"DLM Automation Suite"站点上找到了一个工具SQL Cover.有些程序在数据库中加密,因此会抛出异常.它是该工具的限制还是有另一种方法来测试tSQLt测试用例的代码覆盖率?
我想开始为我的Android应用程序生成单元测试代码覆盖率报告,其中单元测试不在androidTest文件夹中,而是在test我创建的文件夹中。首先,我在build.gradle文件中添加了以下内容:
buildTypes {
...
debug {
debuggable true
testCoverageEnabled true
}
...
}
Run Code Online (Sandbox Code Playgroud)
运行./gradlew createDebugCoverageReport在androidTest文件夹中为我的测试生成报告,但在test文件夹中什么都没有。如何为test文件夹中的测试创建相同的覆盖率报告?
请考虑以下命令:
go tool cover -html=coverage.out
Run Code Online (Sandbox Code Playgroud)
有没有办法让结果HTML在灯光下变暗(而不是在深色背景上的默认灯光字符)?
我既没有在文档中也没有在其中引用的帮助页面中找到任何相关内容(go tool cover --help和go help testflag)