标签: code-coverage

Teamcity + NYC + Istanbul - 生成测试覆盖率报告

我正在尝试在每次构建时生成测试报告到 teamcity 中。我研究了几种方法,最终找到了伊斯坦布尔的 teamcity 记者:teamcity

现在我正在尝试将其集成到 teamcity 中,但我还没有找到任何有关它的说明。

teamcity code-coverage mocha.js istanbul

1
推荐指数
1
解决办法
1248
查看次数

如何将 lcov 与 `--gcov-tool` 标志一起使用?

我想使用与系统默认不同的 gcc 来构建项目。因此我需要为 lcov 提供正确的 gcov-tool 版本。不幸的是,该--gcov-tool标志对我不起作用。即使 lcov 应该默认的版本也不行。

示例运行:

############## extract test coverage  ##############
g++-8 (Debian 8.3.0-6) 8.3.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

gcov-tool-8 (Debian 8.3.0-6) 8.3.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. …
Run Code Online (Sandbox Code Playgroud)

c++ code-coverage gcov lcov travis-ci

1
推荐指数
1
解决办法
3830
查看次数

我如何找到哪些测试涵盖了特定的 Go 代码?

我试图弄清楚是否有办法查看哪些测试覆盖了我的 Go 代码中的函数。我正在与其他开发人员一起开发代码库,因此我没有自己编写所有测试/代码。

我看到一些函数被部分覆盖或几乎完全覆盖,但它们在任何地方都没有引用(在它自己的或其他包中),并且这些函数在任何测试中都不会直接调用。

有没有办法找到哪些测试涵盖了特定代码?当我试图寻找是否可能时,我得到的只是展示如何编写/运行测试并获取覆盖率/突出显示的文章,但没有任何内容实际表明它是否可能。

作为记录,我在 Linux 上使用 VS Code,并go test ./... -cover在我的终端中运行,并Ctrl+Shift+P -> "Go: Toggle Test Coverage In Current Package"在 VS Code 中突出显示覆盖范围。

testing code-coverage go visual-studio-code

1
推荐指数
1
解决办法
5025
查看次数

SonarQube + Maven + JaCoCo + GitLab CI:升级到 SonarQube 7.9.2 后,Sonar 开始显示 0% 代码覆盖率

在我们将 SonarQube 升级到 后Version 7.9.2 (build 30863), Community Edition,运行 GitLab CI Pipeline 会导致显示0.0%覆盖率(从 about 下降86.2%),尽管 Sonar 显示了所有单元测试。

执行的 Maven 构建.gitlab-ci.yml如下所示:

    - mvn test sonar:sonar -Dsonar.host.url=${SONAR_HOST_URL} -Dsonar.login=${SONAR_TOKEN}
Run Code Online (Sandbox Code Playgroud)

sonar.coverage.jacoco.xmlReportPaths显然,这与臭名昭著的 Sonar-JaCoCo 插件设置有关sonar.jacoco.reportPaths(请参阅https://docs.sonarqube.org/pages/viewpage.action?pageId=1442166)。

查看管道作业日志后,我发现以下内容(项目名称混淆为myProject):

SonarQube 升级之前:

[INFO] Sensor JaCoCo XML Report Importer [jacoco]
[INFO] Sensor JaCoCo XML Report Importer [jacoco] (done) | time=3ms
[INFO] Sensor SurefireSensor [java]
[INFO] parsing [/builds/myProject/target/surefire-reports]
[INFO] Sensor SurefireSensor [java] (done) | time=87ms
[INFO] Sensor …
Run Code Online (Sandbox Code Playgroud)

java code-coverage maven jacoco sonarqube

1
推荐指数
1
解决办法
6481
查看次数

在不同的包上进行测试覆盖率

我一直在写一个休息服务我有以下结构

/controllers
/domain/dao
/services
Run Code Online (Sandbox Code Playgroud)

在为每个单独的包编写大量测试并为每个阶段进行模拟之后,我认为针对控制器编写测试并模拟数据库会更快,因此我知道 /domain/dao 层正在被调用。

我现在的问题是,当我运行代码覆盖率时,即使我知道代码正在被调用,我也没有获得 /service 或 /domain/dao 的覆盖率

关于如何获得所有文件的代码覆盖率有什么想法吗?

testing code-coverage go

1
推荐指数
1
解决办法
3322
查看次数

如何在测试代码时完全覆盖条件(例如 PHP 和 xdebug)

不久前,我开始在 PHPUnit (v. 9) 中编写测试。这很棒而且令人惊奇,但是:

如何正确涵盖条件语句?

我将给出一些例子,其中结果是正确的和预期的,以及我发现问题的地方。这里是:

请注意,下面的代码只是示例。

我知道当我传递trueif语句时,将没有机会转到代码的其他分支。这只是尽可能简单的示例。

问题不存在的情况:

if (true) {
    return 'true';//here is covered
}
return 'false';//here is not covered    
Run Code Online (Sandbox Code Playgroud)

这没关系,但是如下:

return (true) ? 'true' : 'false';
Run Code Online (Sandbox Code Playgroud)

整行被视为覆盖,但显然 false 永远不会返回。

所以。我做什么坏事了?

唯一的解决方案是不使用三元运算符?它的语法非常短,但由于缺乏有关覆盖率的(真实/错误)信息而容易出错。:(

php phpunit code-coverage xdebug

1
推荐指数
1
解决办法
339
查看次数

0
推荐指数
1
解决办法
3246
查看次数

如何在Java中获得最佳代码覆盖率?

存在一些允许计算一组测试的路径覆盖率的工具,但是是否有一个工具(或算法)可以建议值以尽可能少的测试获得最佳路径覆盖?

例如,使用以下类:

public class User {

    private boolean isAdmin = false;
    private String name;
    private String password;

    public User(String name, String password, boolean isAdmin) {
        this.name = name;
        this.password = password;
        this.isAdmin = isAdmin;
    }

    public boolean isAdmin() {
        return isAdmin;
    }

    public boolean authenticate(String name, String password) {
        if (name.equals(this.name) && password.equals(this.password)) {
        return true;
        } else {
            return false;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)
public class DataRepository {

    List<String> data = new ArrayList<String>();

    public void add(String dataPiece) {
        data.add(dataPiece);
    } …
Run Code Online (Sandbox Code Playgroud)

java testing algorithm code-coverage

0
推荐指数
2
解决办法
2246
查看次数

代码覆盖率分析

我正在使用框架4.0中开发的asp.net Web表单项目.它目前没有任何单元测试.

我目前正在为网站添加一个新功能,我希望在其中引入单元和集成测试.不熟悉代码覆盖的概念我希望在新功能中实现很高比例.

我将使用随visual studio和rhino mocks提供的集成测试环境进行模拟生成.对于新功能,我应该达到什么级别的代码覆盖率?对于新手编码覆盖率,如何衡量网站的特定功能?

c# asp.net unit-testing code-coverage

0
推荐指数
1
解决办法
1723
查看次数

Jacoco在我的Gradle项目中没有显示Spock代码覆盖率

我有一个配置了jacoco插件的Gradle项目来报告测试代码的覆盖范围.我的单元测试是用Spock框架编写的.

虽然Jacoco插件生成HTML报告,但它会将所有类的代码覆盖率报告为0%.

我google了很多,找不到我想念的东西.有没有人使用Gradle + Jacoco进行Spock代码覆盖?

apply plugin: "jacoco"
apply plugin: "groovy"

sourceSets {
    main {
        java { srcDirs = ['src/main/java'] }
        groovy {srcDirs = ['src/main/groovy'] }
        resources { srcDir 'src/main/resources' }
    }

    test {
        java { srcDirs = ['src/test/java'] }
        groovy { srcDirs = ['src/test/groovy'] }
        resources { srcDir 'src/test/resources' }
    }
}

test {
    jvmArgs '-Xms64m', '-Xmx2G', '-XX:MaxPermSize=128m'
}

jacocoTestReport {
    reports {
        xml.enabled false
        csv.enabled false
        html.destination "${buildDir}/jacocoHtml"
    }
}

dependencies {
    testCompile "org.spockframework:spock-core:0.7-groovy-2.0"
    testCompile "org.spockframework:spock-spring:0.7-groovy-2.0"
}
Run Code Online (Sandbox Code Playgroud)

unit-testing code-coverage gradle spock jacoco

0
推荐指数
1
解决办法
4755
查看次数