我是一个使用OpenCover和ReportGenerator的菜鸟,我在理解如何让它们工作方面有点挣扎.我正在使用VS.NET 2012'Professional',这意味着我无法访问内置的单元测试覆盖工具.我也安装了ReSharper,但不想在'dotCover'中支付另一个实用程序
看起来OpenCover和ReportGenerator会做我需要的工作,我会看到同时下载的文档,但我缺少一些理解.第一关,当我为两者下载nuget包时,我的目标项目应该是什么?我有一个多层应用程序,所以我假设我的单元测试项目是正确的,或者甚至是否重要?我在文档中看到,我只是使用命令行命令指向/ bin(我认为)解决方案,所以也许我甚至不需要将这些下载添加到任何特定项目(可能是测试工具) ).有人可以告诉我,如果我有这个正确吗?
一旦我安装了它们,我就会尝试获得单元测试覆盖率指标,并且程序包附带的文档并不像我希望的那样清晰.是否有任何好的博客文章或链接一起使用这些工具来获取指标?
在使用OpenCover生成覆盖率报告(然后使用ReportGenerator生成HTML报告)时,我试图排除框架生成的类.特别是,由服务引用在项目命名空间下生成的类.
我用来生成XML文件的命令如下所示:
OpenCover.Console.exe -register:user "-target:MyProject.Tests.dll" -targetargs:"/testcontainer:MyContainer" -output:coverage.xml -mergebyhash -filter:-*.AWebService.*
Run Code Online (Sandbox Code Playgroud)
我也试图通过文件排除:
OpenCover.Console.exe -register:user "-target:MyProject.Tests.dll" -targetargs:"/testcontainer:MyContainer" -output:coverage.xml -mergebyhash -excludebyfile:*Reference.cs
Run Code Online (Sandbox Code Playgroud)
但服务引用类仍显示在XML文件中.
有没有办法只排除Visual Studio生成的特定类?
我正在尝试将OpenCover与CruiseControl.NET集成.此时我已经通过构建系统进行了修改,因此它在OpenCover下运行我的nunit测试.然后,我使用ReportGenerator生成Xml和Html报告.
假设可以将ReportGenerator生成的报告集成到CruiseControl.NET webapp中,我该如何将它们集成?
NCover有自己的NCoverReporting任务可以使用,但由于我没有运行NCover,我无法将其输出与OpenCover生成的XML报告进行比较.
相关的想法/问题:
如何使用coverlet和从代码覆盖率报告中排除方法reportgenerator。排除整个命名空间可以.runsettings按预期工作,但使用[ExcludeFromCodeCoverage]属性会排除整个文件,而不仅仅是目标方法。有关我在 中尝试过的内容,请参阅下面的评论.runsettings。
相关.runsettings线路:
<DataCollectionRunSettings>
<DataCollectors>
<DataCollector>
<Configuration>
<Format>lcov</Format>
<Include>[*]*</Include>
<Exclude>
<!-- excluded namespaces -->
</Exclude>
<!-- excludes entire file from coverage -->
<ExcludeByAttribute>Obsolete, GeneratedCodeAttribute, CompilerGeneratedAttribute,ExcludeFromCodeCoverage</ExcludeByAttribute>
<!-- included & reported as uncovered -->
<ExcludeByAttribute> ExcludeFromCodeCoverageAttribute </ExcludeByAttribute>
<SingleHit>true</SingleHit>
<UseSourceLink>true</UseSourceLink>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
<!-- included and reported as uncovered -->
<CodeCoverage>
<Attributes>
<Exclude>
<Attribute> ^System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute$</Attribute>
</Exclude>
</Attributes>
</CodeCoverage>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
Run Code Online (Sandbox Code Playgroud)
更新:这似乎是最近解决的问题coverlet。更新解决了该问题。https://github.com/coverlet-coverage/coverlet/issues/809
如何使用 IO 在 Java 中生成报告?
我想生成带有数据库记录的 PDF 文件。
目前我有这样的事情......
try{
ResultSet rs = ps.executeQuery();
while(rs.next()){
FileOutputStream fos = new FileOutputStream("Desktop/Test.pdf");
ObjectOutputStream out = new ObjectOutputStream(fos);
out.writeChars("Name of user: ");
out.writeChars("Age: ");
out.close();
}
}
catch (IOException ioe){
}
Run Code Online (Sandbox Code Playgroud)
一直提示PDF文件已损坏。
如果有人能在这里帮助我,我将不胜感激。
编辑:我不想使用 iReports/JasperReports/iText/其他报告生成器。
非常感谢
我在 VSTS 中有一个构建,如下所示:
您可以从屏幕截图中看到“测试并生成代码覆盖率”的测试步骤。它使用这个命令:
/p:CollectCoverage=true /p:CoverletOutputFormat=cobertura /p:CoverletOutput=$(Build.SourcesDirectory)\TestResults\Coverage\coverage
这允许生成代码覆盖率报告。我已经使用我定义的特征(例如集成或单元)将“类别”添加到我的 xUnit 测试中,以允许我在构建/发布期间过滤测试。示例是:
using System;
using System.Collections.Generic;
using System.Linq;
using Xunit.Abstractions;
using Xunit.Sdk;
/// <summary>
/// Decorates a test as a Unit Test, so that it runs in Continuous Integration builds.
/// </summary>
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public sealed class IsUnitAttribute : AICategoryAttribute
{
/// <summary>
/// Initializes a new instance of <see cref="IsUnitAttribute"/>
/// </summary>
public IsUnitAttribute() : base("Unit") { }
}
/// <summary>
/// Decorates a test as an Integration Test, so …Run Code Online (Sandbox Code Playgroud) testing code-coverage xunit.net reportgenerator azure-pipelines-build-task
我最近正在为数据库中的简单 2 条记录生成报告。为了生成此报告,我使用 Laravel dompdf 包,但下载时间太长,这是意料之外的。我使用的代码如下:
$pdf = PDF::loadView('dashboard.sales-report', compact('sales'));
$pdf->setPaper('A4', 'portrait');
$sales_report_file_name = "daily_sales_".date('Y-m-d').".pdf";
return $pdf->download($sales_report_file_name);
Run Code Online (Sandbox Code Playgroud)
并在我们的视图页面中使用 css。但只有两条记录时间超过2分钟。有人可以帮我吗?提前致谢。
刀片文件代码:
@extends('layouts.invoice_master')
@section('content')
@php
$total_discount = 0;
$total_advance = 0;
$total_net_sum = 0;
$total = 0;
@endphp
<!-- START CONTAINER FLUID -->
<div class=" container-fluid container-fixed-lg">
<!-- START card -->
<div class="card card-default m-t-20">
<div class="card-body">
<!-- Define header and footer blocks before your content -->
<header>
<p>{{ $report_for }} </p>
<p>{{ $report_for_date }}</p>
<p>{{ $report_for_month }}</p>
</header>
<div class="invoice padding-50 …Run Code Online (Sandbox Code Playgroud)