标签: code-coverage

验收测试和代码覆盖率

测量验收测试覆盖率的最佳方法是什么?

你如何定义你的验收测试覆盖多少以及何时足够?

code-coverage acceptance-testing function-coverage

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

NCover代码覆盖率导致故意测试失败

我有几个单元测试助手扩展方法,例如,IsNotEmpty(this string str)我也为其编写了单元测试.这些测试的基本结构是我有一个测试,它验证扩展方法是否通过并在"良好"输入上返回预期结果,以及验证在"坏"输入上抛出失败异常的测试.例如,上述方法的失败测试可能如下所示:

[TestMethod, Fails]
public void IsNotEmpty_Fails_On_Empty_String()
{
    "".IsNotEmpty();
}
Run Code Online (Sandbox Code Playgroud)

Fails我自己写的属性在哪里- 基本上是代理[ExpectedException(typeof(AssertFailedException))].所以我明确地期望在上面测试的唯一一行上抛出一个异常,因此,我希望该方法一直运行.

但是当我右键单击我的解决方案时,选择"使用 - > NCover测试",我在所有方法(如上面的方法)上得到的代码覆盖率低于100%,结束大括号突出显示为红色.

为什么NCover抱怨我的测试方法没有完成,当我说它不会?

**)对于那些将回复100%代码覆盖率的人来说:不,我并不特别担心不惜一切代价保持100%的代码覆盖率.但是,在这些情况下,*重要的方法显示为列表中未包含的内容,我必须一直进入树中才能看到它只是它们.这是我试图在这里得到的问题 - 一般来说不是100%的代码覆盖率.

c# code-coverage ncover visual-studio

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

从cobertura报告中排除一些类

我正在使用gradle-cobertura插件生成测试覆盖率报告,可在此处找到.这个插件工作得非常好.现在我试图从覆盖率报告中排除一些类.我试图通过使用闭包来配置Cobertura插件的行为,如下所示配置约定属性:

cobertura {
    coverageSourceDirs = sourcesSets.main.groovy.srcDirs
    coverageExcludes = ['class_name.groovy']
}
Run Code Online (Sandbox Code Playgroud)

但覆盖率报告仍显示我已排除的类别.任何帮助将不胜感激.

谢谢和问候,Diganta

code-coverage cobertura gradle

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

minitest与simplecov

我正在尝试测试这样的minitest文件:

COVERAGE=true ruby -Itest test/views/info_pages_test.rb
COVERAGE=true ruby -Itest test/views/errors_test.rb
Run Code Online (Sandbox Code Playgroud)

现在我的info_pages_test有97%的覆盖率,而我的errors_test有75%的覆盖率.它们应该一起覆盖100%..但每次运行上述命令时,我得到一个结果或另外75%或97%.有没有办法将两个测试文件的结果合并为一个覆盖率报告?

非常感谢帮助!

这是我的minitest_helper.rb文件的顶部

## SimpleCOV

require 'simplecov'

if ENV["COVERAGE"]

  SimpleCov.start('rails') do

    add_filter "/test/"

  end
  puts "Started SimpleCOV"
end
Run Code Online (Sandbox Code Playgroud)

我在应用程序根目录中也有一个.simplecov文件,但是使用它会给我带来不可预测的结果.我偶尔会得到100%的覆盖率,这是不可预测的..

.simplecov文件

SimpleCov.use_merging true
SimpleCov.merge_timeout 3600
Run Code Online (Sandbox Code Playgroud)

code-coverage ruby-on-rails minitest simplecov

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

使用coverage.py在python中进行代码覆盖

我试图了解python脚本的运行覆盖率.我无法理解我尝试为具有无限循环的简单脚本运行coverage的情况:

#!/usr/bin/python

print "The only statement!!!"

while True:
    pass
Run Code Online (Sandbox Code Playgroud)

在调用此脚本的覆盖范围后,我将终止此过程,因为它是一个无限循环,如果我尝试得到结果,我会得到:

  1. coverage运行sample.py
  2. 杀死样本
  3. 报道报告-m

Name Stmts Miss Cover Missing -------------------------------------

我没有收到任何报道.我在做一些根本错误的事吗?

python code-coverage coverage.py python-coverage

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

cucumber.js的代码覆盖率?

如果有解决方案来对javascript黄瓜执行的测试代码进行代码覆盖分析,我只是喋喋不休?

此外,代码覆盖率应以cobertura文件格式提供,以将其嵌入到我们对后端代码的现有分析中.

任何人都可以帮我解决这个问题吗?

javascript code-coverage cucumberjs

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

Open Cover过滤器如何避免代码覆盖率测试汇编文件

我已经浏览了Opencover wiki文档并尝试了很多,以找出不包含测试程序集作为代码覆盖的一部分的过滤条件.这是问题所在

例如,我有许多程序集以样本名称开头,例如sample.submodule.assembly1.dll,sample.submodule.assembly2.dll,我的测试程序集也以sample.submodule.tests.dll样本开头,这里我应用了过滤条件openCover

1. -filter: "+[sample*]* -[*tests]*" 它不起作用,不生成报告文件.

  1. -filter: "+[sample*]* -[sample.submodule.tests]*" 没有工作,没有生成报告文件,

  2. -filter: "+[sample*]* -[*]*tests*" 没有工作,也没有生成报告文件,

有人可以告诉我这里的过滤条件是什么,以排除代码覆盖范围内的所有测试文件

code-coverage opencover

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

如何在Golang中获得100%的代码覆盖率?

我无法获得100%的代码覆盖率,因为我无法在Golang中测试Fatals.

在此输入图像描述

我找到了一些问答,包括这个问题,但由于帖子的答案是矛盾的,我很遗憾.一方面可以检查Golang中的代码覆盖率.另一方面,一些人主张忽略例如测试log.Fatal(err),导致代码覆盖率小于100%.


尝试

作为一种解决方法,我取而代之log.Fatal,panic并且由于这个答案,我能够测试所有的恐慌并实现100%的代码覆盖率.


问题

虽然我能够获得100%的代码覆盖率,但我并不高兴,因为我基本上误用panic了100%的代码覆盖率.根据这个答案 a panic使用:

当程序或其部分达到不可恢复的状态时

基于这个定义,我的代码中有多个片段可以引起恐慌,而log.Fatal应该使用a.

testing code-coverage go

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

Junit 4测试覆盖范围

我无法涵盖下一个方法:

protected void dealDamage(int damage, String damageType) {
    this.setDamageDealt(damage);
    this.setDamageDealtType(damageType);
}
Run Code Online (Sandbox Code Playgroud)

我的测试看起来像这样:

@Test
@Parameters({"30, physical"})
public void dealDamage(int damage, String damageType) throws Exception {
    this.creature.setDamageDealt(damage);
    this.creature.setDamageDealtType(damageType);
    assertEquals(this.creature.getDamageDealt(), 30);
    assertEquals(this.creature.getDamageDealtType(), "physical");
}
Run Code Online (Sandbox Code Playgroud)

测试返回成功,但方法根本没有涉及.哪里可能是我的错?我错过了什么吗?

java testing junit code-coverage junit4

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

VSTS的SonarQube代码覆盖率

我正在使用VSTS托管代理VS2017来运行构建,测试和SonarQube分析。我正在使用来自市场(https://marketplace.visualstudio.com/items?itemName=SonarSource.sonarqube)的SonarQube扩展。使用的任务版本是4,它将SonarQube Scanner用于MSBuild 4.0.2。

该分析效果很好,但是没有将代码覆盖率结果转换为SonarQube。我可以在VSTS(构建详细信息)中看到代码覆盖率分析,但在SonarQube中看不到。

以我的理解,问题在于VSTS生成扩展名为.codecoverage的二进制文件。SonarQube不知道如何处理此文件。我在将其转换为XML格式时遇到了麻烦,因为我似乎无能为力。

是否有人在SonarQube中成功使用了VSTS,并将代码覆盖率结果也带到了SonarQube?您如何设置?

编辑1
我使用的SonarQube版本是:6.7版(内部版本33306),社区版

编辑2
分析结束时实际上会生成xml文件,如下面的注释中所述。这来自日志:

2018-03-06T11:14:56.4189055Z 11:14:56.417  Attempting to locate the 
CodeCoverage.exe tool...
2018-03-06T11:14:56.4210147Z 11:14:56.42  Attempting to locate the 
CodeCoverage.exe tool using setup configuration...
2018-03-06T11:14:56.4345085Z 11:14:56.433  Code coverage command line tool: 
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Team 
Tools\Dynamic Code Coverage Tools\CodeCoverage.exe
2018-03-06T11:14:56.4349101Z 11:14:56.434  Fetching code coverage report 
information from TFS...
2018-03-06T11:14:56.4363869Z 11:14:56.435  Attempting to locate a test 
results (.trx) file...
2018-03-06T11:14:57.0458245Z 11:14:57.044  Looking for TRX files in: 
D:\a\1\TestResults, D:\a\1\s\TestResults
2018-03-06T11:14:57.0462747Z 11:14:57.045  Located a test …
Run Code Online (Sandbox Code Playgroud)

code-coverage sonarqube azure-devops

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