我应该关心我的测试如何涵盖我在项目中使用的外部库吗?
py.test --cov显示所有文件的覆盖方式,包括我的virtualenv目录中的文件.如何使输出仅显示我编写的模块的覆盖范围?
我正在尝试使用覆盖模块为django项目找到覆盖范围,但得到"Coverage.py警告:没有收集数据.(无数据收集)".我的项目文件夹有src和tests文件夹.
我跑的时候
覆盖运行-m pytest &&覆盖率报告
它生成一个100%覆盖率的报告,其中包含tests文件夹中的文件列表.而我跑的时候
覆盖运行--source = src -m pytest &&覆盖率报告
它说
Coverage.py警告:未收集任何数据.(无数据收集)
无数据报告.
当我尝试在.coveragerc中给出source = src或include = src时,也会发生相同的警告.上述所有案例均通过测试.
我想要src文件夹的覆盖范围.是因为我错过了一些路径设置吗?
来自伊斯坦布尔的HTML格式的单元测试覆盖率报告显示了项目中的每个文件夹index.html.
它实际上使目录结构变平.是否可以选择使用嵌套文件夹呈现html报告?
javascript unit-testing code-coverage istanbul test-coverage
在一个项目中,我有一个Utility类,如下所示:
public final class Util {
private Util() {}
public static String method1(InputStream in) {...}
public static String method2(BufferedReader in) {...}
public static String method3(File file) {...}
}
Run Code Online (Sandbox Code Playgroud)
类是在它所包含的意义上的实用工具类唯一static方法.因此它被声明final并且它的构造函数是private.创建实例或派生子类根本没有任何意义.
我有一套测试项目的单元测试.我正在使用IntelliJ IDEA来运行测试,测量和可视化代码覆盖率.实用程序的构造函数class Util现在降低了覆盖率.我希望看到100%的100%逻辑覆盖率.像Utility类的私有构造函数这样的代码会降低覆盖率.
是否有可能(最好通过注释)将方法或构造函数标记为与代码覆盖无关,以便从覆盖率报告中排除此类代码,从而显示100%的覆盖率?
我知道,一般来说,覆盖率报告中的隐藏代码对您自己不利.我不介意报告是否会有一个"被忽略的项目"列表 - 实际上,这将是好的,检查是否有人忽略了不应忽略的东西.关键在于覆盖范围没有意义的代码,就像Utility类的私有构造函数一样.
我试图找到是否annotations.jar包含候选人.唯一一个看起来就像它可以做到的那样的注释是TestOnly,但它不能实现这个目的.我也偷看了,plugins/coverage/lib/*.jar找不到候选人,但也许我只是错过了?
我正在尝试使用maven中的jacoco插件为我正在处理的多模块项目生成代码覆盖率报告.
我在构建标记中的父pom.xml中添加了以下内容.
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.8-SNAPSHOT</version>
<configuration>
<output>file</output>
<append>true</append>
</configuration>
<executions>
<execution>
<id>jacoco-initialize</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>jacoco-site</id>
<phase>verify</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<argLine>${argLine}</argLine>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
在运行mvn verify时,为"project-root\module\target\site\jacoco \"的每个模块生成了相应的jacoco报告 .
是否可以在项目根目录中生成包含每个模块的测试覆盖率详细信息的合并jacoco报告?
请建议合并各个模块报告的最佳方法.
我寻找了一段时间,但找不到在 Rider 单元测试工具窗口中启用测试覆盖率功能的方法。https://www.jetbrains.com/help/rider/Unit_Tests_Coverage_window.html
我们正在构建一个使用Appium进行测试的Android应用.现在我想看看Appium测试的测试覆盖率.我认为这是可能的,因为Jacoco支持离线仪器(http://www.eclemma.org/jacoco/trunk/doc/offline.html).
甚至jacoco gradle插件的文档也说:
虽然所有类型为Test的任务都会自动增强,以便在应用java插件时提供覆盖信息,但JaCoCo插件可以增强任何实现JavaForkOptions的任务.也就是说,任何分叉Java进程的任务都可用于生成覆盖信息.
请参阅https://docs.gradle.org/current/userguide/jacoco_plugin.html
但是我如何编写build.gradle,以便检测我们的验收调试风格,并在执行Appium测试或执行手动测试用例时将exec文件写入Smartphone?因为那时我可以提取exec文件并将其发送给SonarQube进行进一步分析.
谢谢Ben
在新版本的Android Studio 2.3 Canary中,我不再使用"Run with Coverage ..."选项进行测试.
有没有人知道该选项是否以某种方式集成到另一个机制中,还是完全删除了?
我希望不会,那会非常糟糕,因为我在使用Robolectric进行TDD时非常依赖它:-(虽然在编辑器背景中放置图片的选项很好 - 让猫盯着我看8小时很酷 - 不是获得覆盖率报告是一个相当高的代价...... :-(
我想在Jacaco测试覆盖率报告中排除一些源文件.对于其他生成的代码,我这样做:
classDirectories = fileTree(
dir: "${project.buildDir}/intermediates/classes/debug/com",
excludes: [
'**/R.class',
'**/R$*.class']
)
Run Code Online (Sandbox Code Playgroud)
但是当我尝试这样做时,为了排除Java文件:
dir: "${project.buildDir}/intermediates/classes/debug/com",
excludes: [
'src//java/com/example/application/Constants.java']
Run Code Online (Sandbox Code Playgroud)
也尝试过这样:. '**/application/Constants.class'它不起作用.我需要在这里包括路径: dir: "${project.buildDir}/intermediates/classes/debug/com"?
我正在使用Android studio 3.0(我认为这不重要).我正在尝试的完整代码:
task jacocoTestReport(type: JacocoReport) {
group = "Reporting"
description = "Generate Jacoco coverage reports"
reports {
xml.enabled = true
html.enabled = true
}
sourceDirectories = files(sourceSets)
classDirectories = fileTree(
dir: "${project.buildDir}/intermediates/classes/debug/com",
excludes: [
'src//java/com/example/application/Constants.java', //this is not working
'**/R.class',
'**/R$*.class',
'**/BuildConfig.*',
'**/Manifest*.*',
'**/*$ViewInjector*.*',
'**/*$ViewBinder*.*',
'**/*$Lambda$*.*', // Jacoco can not handle several "$" in class name. …Run Code Online (Sandbox Code Playgroud) 我正在使用coverage.py以 html 报告的形式检查单元测试的代码覆盖率。
coverage run -m pytest
coverage html
Run Code Online (Sandbox Code Playgroud)
该报告非常酷,它显示了总体覆盖率 % 和单个 .py 文件的覆盖率 %。每次我完成一些代码更改时,我都会重新运行覆盖率报告,以检查我的单元测试用例是否可以很好地覆盖新代码。然而,问题是我必须手动发现是否有任何 .py 文件的覆盖率特别低。
有什么方法或现有工具可以用来将测试覆盖率与之前/历史运行进行比较?这样我就可以轻松发现是否有任何 .py 文件的覆盖率显着下降。
test-coverage ×10
unit-testing ×4
jacoco ×3
android ×2
coverage.py ×2
java ×2
pytest ×2
python ×2
django ×1
gradle ×1
istanbul ×1
javascript ×1
junit ×1
maven ×1
offline ×1
python-2.7 ×1
rider ×1
robolectric ×1
testing ×1
virtualenv ×1