mirror of
https://github.com/irongut/CodeCoverageSummary.git
synced 2026-05-14 06:00:13 +02:00
Compare commits
70 Commits
v1.3.0-beta
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| f138489648 | |||
| 9986579715 | |||
| 2b7bf99d3d | |||
| 6381a94beb | |||
| 064d8225cf | |||
| dc0965bfd6 | |||
| c76d28851c | |||
| 249f92f672 | |||
| f157e9605b | |||
| e4fa71f987 | |||
| 6c9b394cdc | |||
| 79572a8bdc | |||
| 7086c364c7 | |||
| 159f0d3f03 | |||
| b371d8d706 | |||
| e58ef3d225 | |||
| 8be1ea7dcd | |||
| df694edd1f | |||
| 389bb15050 | |||
| f9552f243d | |||
| 22531c6a84 | |||
| 32b97a380b | |||
| 58d593b91d | |||
| b7e4620db9 | |||
| 835f52dd6d | |||
| 57a8504803 | |||
| de3bf184e8 | |||
| 0adb7a5e81 | |||
| 193c3d52d4 | |||
| 4472978224 | |||
| ad8e33903c | |||
| b4e48dcc98 | |||
| 2cba9cd8f8 | |||
| 31b2f90c53 | |||
| 3a1aab172a | |||
| 80e8804405 | |||
| be73105298 | |||
| 9dd4a48e5d | |||
| a989a1acc2 | |||
| b5c414e325 | |||
| 3d044cdcd5 | |||
| 3a7e9990c1 | |||
| 7142272b0a | |||
| 23dcb1b683 | |||
| d5f059c9e5 | |||
| 84eac7e593 | |||
| 74295b4928 | |||
| 3216094ffb | |||
| 59bf0ee52a | |||
| 9702896171 | |||
| 7c7e56f29d | |||
| a75666af65 | |||
| 76f7177ccc | |||
| ba2d454f72 | |||
| 1fa57f12ee | |||
| a325aae56f | |||
| a7dfd386d4 | |||
| fbd7727617 | |||
| f181f0fb43 | |||
| 5c41ceee77 | |||
| 65997c5b86 | |||
| e8b30e8bdc | |||
| c0fec16186 | |||
| 52d447d8ec | |||
| e4b6675d33 | |||
| 155e9dc09c | |||
| 12259bb15f | |||
| cde20e0aef | |||
| 51cc3a756d | |||
| df43d7d643 |
@@ -1,7 +1,13 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: nuget
|
||||
directory: "/"
|
||||
directory: "/src"
|
||||
schedule:
|
||||
interval: daily
|
||||
open-pull-requests-limit: 10
|
||||
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
open-pull-requests-limit: 5
|
||||
|
||||
@@ -20,33 +20,35 @@ jobs:
|
||||
steps:
|
||||
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@74b568e8591fbb3115c70f3436a0c6b0909a8504
|
||||
uses: step-security/harden-runner@2e205a28d0e1da00c5f53b161f4067b052c61f34
|
||||
with:
|
||||
egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
|
||||
egress-policy: block
|
||||
allowed-endpoints: >
|
||||
api.github.com:443
|
||||
|
||||
- name: Assign Issues to Bugs
|
||||
uses: srggrs/assign-one-project-github-action@4d59cc619499b55ca689fb13cfcc72324a8b8435
|
||||
uses: srggrs/assign-one-project-github-action@65a8ddab497df42ef268001e67bbf976f8fd39e1
|
||||
if: contains(github.event.issue.labels.*.name, 'bug')
|
||||
with:
|
||||
project: 'https://github.com/irongut/CodeCoverageSummary/projects/1'
|
||||
column_name: 'Needs triage'
|
||||
|
||||
- name: Assign Issues to Enhancements
|
||||
uses: srggrs/assign-one-project-github-action@4d59cc619499b55ca689fb13cfcc72324a8b8435
|
||||
uses: srggrs/assign-one-project-github-action@65a8ddab497df42ef268001e67bbf976f8fd39e1
|
||||
if: contains(github.event.issue.labels.*.name, 'enhancement')
|
||||
with:
|
||||
project: 'https://github.com/irongut/CodeCoverageSummary/projects/2'
|
||||
column_name: 'To do'
|
||||
|
||||
- name: Assign PRs to Bugs
|
||||
uses: srggrs/assign-one-project-github-action@4d59cc619499b55ca689fb13cfcc72324a8b8435
|
||||
uses: srggrs/assign-one-project-github-action@65a8ddab497df42ef268001e67bbf976f8fd39e1
|
||||
if: contains(github.event.pull_request.labels.*.name, 'bug')
|
||||
with:
|
||||
project: 'https://github.com/irongut/CodeCoverageSummary/projects/1'
|
||||
column_name: 'In Progress'
|
||||
|
||||
- name: Assign PRs to Enhancements
|
||||
uses: srggrs/assign-one-project-github-action@4d59cc619499b55ca689fb13cfcc72324a8b8435
|
||||
uses: srggrs/assign-one-project-github-action@65a8ddab497df42ef268001e67bbf976f8fd39e1
|
||||
if: contains(github.event.pull_request.labels.*.name, 'enhancement')
|
||||
with:
|
||||
project: 'https://github.com/irongut/CodeCoverageSummary/projects/2'
|
||||
|
||||
@@ -13,11 +13,13 @@ jobs:
|
||||
steps:
|
||||
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@74b568e8591fbb3115c70f3436a0c6b0909a8504
|
||||
uses: step-security/harden-runner@2e205a28d0e1da00c5f53b161f4067b052c61f34
|
||||
with:
|
||||
egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
|
||||
egress-policy: block
|
||||
allowed-endpoints: >
|
||||
api.github.com:443
|
||||
|
||||
- name: Auto Assign PR
|
||||
uses: samspills/assign-pr-to-author@223a87a821f7e7447cfb5221bc53ceeb633341c2
|
||||
uses: samspills/assign-pr-to-author@b313feb250ff414d3aff26525b986f080ee7bd7a
|
||||
with:
|
||||
repo-token: '${{ secrets.GITHUB_TOKEN }}'
|
||||
|
||||
@@ -9,6 +9,11 @@ on:
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
env:
|
||||
DOTNET_NOLOGO: true # Disable the .NET logo in the console output
|
||||
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true # Disable the .NET first time experience to skip caching NuGet packages and speed up the build
|
||||
DOTNET_CLI_TELEMETRY_OPTOUT: true # Disable sending .NET CLI telemetry to Microsoft
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -16,15 +21,21 @@ jobs:
|
||||
steps:
|
||||
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@74b568e8591fbb3115c70f3436a0c6b0909a8504
|
||||
uses: step-security/harden-runner@2e205a28d0e1da00c5f53b161f4067b052c61f34
|
||||
with:
|
||||
egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
|
||||
egress-policy: block
|
||||
allowed-endpoints: >
|
||||
api.nuget.org:443
|
||||
dotnetbuilds.azureedge.net:443
|
||||
dotnetcli.azureedge.net:443
|
||||
dotnetcli.blob.core.windows.net:443
|
||||
github.com:443
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@d171c3b028d844f2bf14e9fdec0c58114451e4bf
|
||||
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8
|
||||
|
||||
- name: Setup .Net
|
||||
uses: actions/setup-dotnet@608ee757cfcce72c2e91e99aca128e0cae67de87
|
||||
uses: actions/setup-dotnet@4d4a70f4a5b2a5a5329f13be4ac933f2c9206ac0
|
||||
with:
|
||||
dotnet-version: 6.0.x
|
||||
|
||||
@@ -34,5 +45,5 @@ jobs:
|
||||
- name: Build CodeCoverageSummary
|
||||
run: dotnet build src/CodeCoverageSummary.sln --configuration Release --no-restore
|
||||
|
||||
- name: Test with sample file
|
||||
- name: Test with sample files
|
||||
run: dotnet src/CodeCoverageSummary/bin/Release/net6.0/CodeCoverageSummary.dll --files **/coverage.*.xml --badge true
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
name: CodeQL Scan
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "master" ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/*.gitignore'
|
||||
- '**/*.gitattributes'
|
||||
pull_request:
|
||||
branches: [ "master" ]
|
||||
schedule:
|
||||
- cron: '15 5 * * 5'
|
||||
|
||||
permissions: # added using https://github.com/step-security/secure-workflows
|
||||
contents: read
|
||||
|
||||
env:
|
||||
DOTNET_NOLOGO: true # Disable the .NET logo in the console output
|
||||
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true # Disable the .NET first time experience to skip caching NuGet packages and speed up the build
|
||||
DOTNET_CLI_TELEMETRY_OPTOUT: true # Disable sending .NET CLI telemetry to Microsoft
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
actions: read
|
||||
contents: read
|
||||
security-events: write
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
language: [ 'csharp' ]
|
||||
|
||||
steps:
|
||||
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@2e205a28d0e1da00c5f53b161f4067b052c61f34
|
||||
with:
|
||||
egress-policy: block
|
||||
allowed-endpoints: >
|
||||
api.github.com:443
|
||||
api.nuget.org:443
|
||||
dotnetbuilds.azureedge.net:443
|
||||
dotnetcli.azureedge.net:443
|
||||
dotnetcli.blob.core.windows.net:443
|
||||
github.com:443
|
||||
uploads.github.com:443
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8
|
||||
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@cc7986c02bac29104a72998e67239bb5ee2ee110
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# queries: security-extended,security-and-quality # https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
|
||||
|
||||
- name: Setup .Net
|
||||
uses: actions/setup-dotnet@4d4a70f4a5b2a5a5329f13be4ac933f2c9206ac0
|
||||
with:
|
||||
dotnet-version: 6.0.x
|
||||
|
||||
- name: Restore Dependencies
|
||||
run: dotnet restore src/CodeCoverageSummary.sln
|
||||
|
||||
- name: Build CodeCoverageSummary
|
||||
run: dotnet build src/CodeCoverageSummary.sln --configuration Release --no-restore /p:UseSharedCompilation=false
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@cc7986c02bac29104a72998e67239bb5ee2ee110
|
||||
@@ -0,0 +1,51 @@
|
||||
# hadolint is a Dockerfile linter written in Haskell
|
||||
# More details at https://github.com/hadolint/hadolint
|
||||
|
||||
name: Docker Linter
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "master" ]
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/*.gitignore'
|
||||
- '**/*.gitattributes'
|
||||
pull_request:
|
||||
branches: [ "master" ]
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '35 11 * * 0'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
hadolint:
|
||||
name: Run hadolint scan
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read # for actions/checkout
|
||||
security-events: write # for github/codeql-action/upload-sarif
|
||||
steps:
|
||||
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@2e205a28d0e1da00c5f53b161f4067b052c61f34
|
||||
with:
|
||||
egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8
|
||||
|
||||
- name: Run hadolint
|
||||
uses: hadolint/hadolint-action@f988afea3da57ee48710a9795b6bb677cc901183
|
||||
with:
|
||||
dockerfile: ./Dockerfile
|
||||
format: sarif
|
||||
output-file: hadolint-results.sarif
|
||||
no-fail: true
|
||||
|
||||
- name: Upload Results
|
||||
uses: github/codeql-action/upload-sarif@cc7986c02bac29104a72998e67239bb5ee2ee110
|
||||
with:
|
||||
sarif_file: hadolint-results.sarif
|
||||
wait-for-processing: true
|
||||
@@ -17,12 +17,14 @@ jobs:
|
||||
steps:
|
||||
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@74b568e8591fbb3115c70f3436a0c6b0909a8504
|
||||
uses: step-security/harden-runner@2e205a28d0e1da00c5f53b161f4067b052c61f34
|
||||
with:
|
||||
egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
|
||||
egress-policy: block
|
||||
allowed-endpoints: >
|
||||
api.github.com:443
|
||||
|
||||
- name: Mark Stale
|
||||
uses: actions/stale@98ed4cb500039dbcccf4bd9bedada4d0187f2757
|
||||
uses: actions/stale@9c1b1c6e115ca2af09755448e0dbba24e5061cc8
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
exempt-all-milestones: true
|
||||
|
||||
@@ -19,10 +19,12 @@ jobs:
|
||||
steps:
|
||||
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@74b568e8591fbb3115c70f3436a0c6b0909a8504
|
||||
uses: step-security/harden-runner@2e205a28d0e1da00c5f53b161f4067b052c61f34
|
||||
with:
|
||||
egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
|
||||
egress-policy: block
|
||||
allowed-endpoints: >
|
||||
api.github.com:443
|
||||
|
||||
- uses: actions/labeler@472c5d3aaacde439785e94966eb2e545627f4935
|
||||
- uses: actions/labeler@5c7539237e04b714afd8ad9b4aed733815b9fab4
|
||||
with:
|
||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
|
||||
@@ -4,13 +4,16 @@ on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
env:
|
||||
REGISTRY: ghcr.io
|
||||
IMAGE_NAME: ${{ github.repository }}
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
env:
|
||||
DOTNET_NOLOGO: true # Disable the .NET logo in the console output
|
||||
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true # Disable the .NET first time experience to skip caching NuGet packages and speed up the build
|
||||
DOTNET_CLI_TELEMETRY_OPTOUT: true # Disable sending .NET CLI telemetry to Microsoft
|
||||
REGISTRY: ghcr.io
|
||||
IMAGE_NAME: ${{ github.repository }}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Test Build
|
||||
@@ -18,17 +21,23 @@ jobs:
|
||||
steps:
|
||||
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@74b568e8591fbb3115c70f3436a0c6b0909a8504
|
||||
uses: step-security/harden-runner@2e205a28d0e1da00c5f53b161f4067b052c61f34
|
||||
with:
|
||||
egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
|
||||
egress-policy: block
|
||||
allowed-endpoints: >
|
||||
api.nuget.org:443
|
||||
dotnetbuilds.azureedge.net:443
|
||||
dotnetcli.azureedge.net:443
|
||||
dotnetcli.blob.core.windows.net:443
|
||||
github.com:443
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@d171c3b028d844f2bf14e9fdec0c58114451e4bf
|
||||
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup .Net
|
||||
uses: actions/setup-dotnet@608ee757cfcce72c2e91e99aca128e0cae67de87
|
||||
uses: actions/setup-dotnet@4d4a70f4a5b2a5a5329f13be4ac933f2c9206ac0
|
||||
with:
|
||||
dotnet-version: 6.0.x
|
||||
|
||||
@@ -53,23 +62,35 @@ jobs:
|
||||
steps:
|
||||
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@74b568e8591fbb3115c70f3436a0c6b0909a8504
|
||||
uses: step-security/harden-runner@2e205a28d0e1da00c5f53b161f4067b052c61f34
|
||||
with:
|
||||
egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
|
||||
egress-policy: block
|
||||
allowed-endpoints: >
|
||||
api.github.com:443
|
||||
api.nuget.org:443
|
||||
auth.docker.io:443
|
||||
fulcio.sigstore.dev:443
|
||||
ghcr.io:443
|
||||
github.com:443
|
||||
mcr.microsoft.com:443
|
||||
pipelines.actions.githubusercontent.com:443
|
||||
pkg-containers.githubusercontent.com:443
|
||||
registry-1.docker.io:443
|
||||
storage.googleapis.com:443
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@d171c3b028d844f2bf14e9fdec0c58114451e4bf
|
||||
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8
|
||||
|
||||
- name: Install Cosign
|
||||
uses: sigstore/cosign-installer@c68f43abf1ae5df2528c9c250088fa14ed2d0ef5
|
||||
uses: sigstore/cosign-installer@9becc617647dfa20ae7b1151972e9b3a2c338a2b
|
||||
with:
|
||||
cosign-release: 'v1.9.0'
|
||||
|
||||
- name: Setup Docker Buildx
|
||||
uses: docker/setup-buildx-action@dc7b9719a96d48369863986a06765841d7ea23f6
|
||||
uses: docker/setup-buildx-action@8c0edbc76e98fa90f69d9a2c020dcb50019dc325
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@dd4fa0671be5250ee6f50aedf4cb05514abda2c7
|
||||
uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a
|
||||
with:
|
||||
registry: ${{ env.REGISTRY }}
|
||||
username: ${{ github.repository_owner }}
|
||||
@@ -77,13 +98,13 @@ jobs:
|
||||
|
||||
- name: Extract Docker metadata
|
||||
id: meta
|
||||
uses: docker/metadata-action@b2391d37b4157fa4aa2e118d643f417910ff3242
|
||||
uses: docker/metadata-action@57396166ad8aefe6098280995947635806a0e6ea
|
||||
with:
|
||||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
||||
|
||||
- name: Build + Push Docker image
|
||||
id: build-and-push
|
||||
uses: docker/build-push-action@ac9327eae2b366085ac7f6a2d02df8aa8ead720a
|
||||
uses: docker/build-push-action@c56af957549030174b10d6867f20e78cfd7debc5
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
|
||||
@@ -10,10 +10,14 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
name: CI Build
|
||||
steps:
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8
|
||||
|
||||
- name: Test Action
|
||||
uses: irongut/CodeCoverageSummary@master
|
||||
with:
|
||||
filename: /app/sample.coverage.xml,/app/sample.coverage.xml
|
||||
filename: /src/coverage.*.xml
|
||||
badge: true
|
||||
fail_below_min: true
|
||||
format: markdown
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
# Code Coverage Summary
|
||||
|
||||
<div align="center">
|
||||
|
||||
[](https://github.com/irongut/CodeCoverageSummary/actions/workflows/ci-build.yml)
|
||||
|
||||
[](https://github.com/irongut/CodeCoverageSummary)
|
||||
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
|
||||
[](https://bestpractices.coreinfrastructure.org/projects/6292)
|
||||
|
||||
[](https://github.com/irongut/CodeCoverageSummary/actions/workflows/ci-build.yml)
|
||||
|
||||
[](https://github.com/irongut/CodeCoverageSummary/actions/workflows/codeql-scan.yml)
|
||||
|
||||
</div>
|
||||
|
||||
A GitHub Action that reads Cobertura format code coverage files from your test suite and outputs a text or markdown summary. This summary can be posted as a Pull Request comment or included in Release Notes by other actions to give you an immediate insight into the health of your code without using a third-party site.
|
||||
|
||||
Code Coverage Summary is designed for use with [Coverlet](https://github.com/coverlet-coverage/coverlet) and [gcovr](https://github.com/gcovr/gcovr) but it should work with any test framework that outputs coverage in Cobertura format. If it doesn't work with your tooling please [open an issue][new-issue] to discuss the problem.
|
||||
Code Coverage Summary is designed for use with any test framework that outputs coverage in Cobertura XML format including [Coverlet](https://github.com/coverlet-coverage/coverlet), [gcovr](https://github.com/gcovr/gcovr), [simplecov](https://github.com/simplecov-ruby/simplecov) and [MATLAB](https://uk.mathworks.com/help/matlab/ref/matlab.unittest.plugins.codecoverageplugin-class.html). See the [FAQ](https://github.com/irongut/CodeCoverageSummary/wiki/Frequently-Asked-Questions#which-testing-tools-does-ccs-work-with) for more details. If it doesn't work with your tooling please [open an issue][new-issue] to discuss the problem.
|
||||
|
||||
If you're using [Simplecov](https://github.com/simplecov-ruby/simplecov) please see the [wiki](https://github.com/irongut/CodeCoverageSummary/wiki/Simplecov-Compatibility) for required settings to enable compatibility with Code Coverage Summary.
|
||||
Code Coverage Summary is compatible with [StepSecurity Secure Workflows](https://github.com/step-security/secure-workflows) and uses a Docker image that is cryptographically signed using [Sigstore](https://www.sigstore.dev/). For instructions how to verify the Docker image please see the [Wiki](https://github.com/irongut/CodeCoverageSummary/wiki/Verify-the-Docker-Image).
|
||||
|
||||
**v1.3.0-beta only:** Code Coverage Summary should now be compatible with simplecov using the default settings as well as MATLAB's code coverage plugin.
|
||||
|
||||
As a Docker based action Code Coverage Summary requires a Linux runner, see [Types of Action](https://docs.github.com/en/actions/creating-actions/about-custom-actions#types-of-actions). If you need to build with a Windows or MacOS runner a workaround would be to upload the coverage file as an artifact and use a separate job with a Linux runner to generate the summary.
|
||||
**As a Docker based action Code Coverage Summary requires a Linux runner.**
|
||||
|
||||
|
||||
## Inputs
|
||||
@@ -28,11 +28,7 @@ As a Docker based action Code Coverage Summary requires a Linux runner, see [Typ
|
||||
### `filename`
|
||||
**Required**
|
||||
|
||||
A comma separated list of code coverage files to analyse. If there are any spaces in a path or filename this value must be in quotes.
|
||||
|
||||
**v1.3.0-beta only:** Also supports using glob patterns to match multiple files.
|
||||
|
||||
Note: Coverlet creates the coverage file in a random named directory (guid) so you need to copy it to a predictable path before running this Action, see the [.Net Workflow Example](#net-workflow-example) below.
|
||||
A comma separated list of code coverage files to analyse. Also supports using glob patterns to match multiple files. If there are any spaces in a path or filename this value must be in quotes.
|
||||
|
||||
|
||||
### `badge`
|
||||
@@ -60,12 +56,12 @@ Output Format - `markdown` or `text` (default).
|
||||
|
||||
### `hide_branch_rate`
|
||||
|
||||
Hide Branch Rate values in the output - `true` or `false` (default).
|
||||
Hide Branch Rate metrics in the output - `true` or `false` (default).
|
||||
|
||||
|
||||
### `hide_complexity`
|
||||
|
||||
Hide Complexity values in the output - `true` or `false` (default).
|
||||
Hide Complexity metrics in the output - `true` or `false` (default).
|
||||
|
||||
|
||||
### `indicators`
|
||||
@@ -127,7 +123,7 @@ Minimum allowed line rate is 50%
|
||||
|
||||
```yaml
|
||||
name: Code Coverage Summary Report
|
||||
uses: irongut/CodeCoverageSummary@v1.2.0
|
||||
uses: irongut/CodeCoverageSummary@v1.3.0
|
||||
with:
|
||||
filename: coverage.cobertura.xml
|
||||
```
|
||||
@@ -166,13 +162,10 @@ jobs:
|
||||
- name: Test
|
||||
run: dotnet test src/Example.sln --configuration Release --no-build --verbosity normal --collect:"XPlat Code Coverage" --results-directory ./coverage
|
||||
|
||||
- name: Copy Coverage To Predictable Location
|
||||
run: cp coverage/**/coverage.cobertura.xml coverage.cobertura.xml
|
||||
|
||||
- name: Code Coverage Summary Report
|
||||
uses: irongut/CodeCoverageSummary@v1.2.0
|
||||
- name: Code Coverage Report
|
||||
uses: irongut/CodeCoverageSummary@v1.3.0
|
||||
with:
|
||||
filename: coverage.cobertura.xml
|
||||
filename: coverage/**/coverage.cobertura.xml
|
||||
badge: true
|
||||
fail_below_min: true
|
||||
format: markdown
|
||||
|
||||
+3
-3
@@ -4,10 +4,10 @@
|
||||
|
||||
Version | Supported
|
||||
------- | ------------------
|
||||
1.2.0 | :white_check_mark:
|
||||
1.2.0-beta | :x:
|
||||
1.3.0 | :white_check_mark:
|
||||
1.3.0-beta | :x:
|
||||
1.2.0 | :x:
|
||||
1.1.0 | :x:
|
||||
1.1.0-beta| :x:
|
||||
1.0.x | :x:
|
||||
|
||||
Only the latest version is supported. If you find a security vulnerability in an eariler version please check it exists in the latest version before reporting.
|
||||
|
||||
+2
-2
@@ -6,7 +6,7 @@ branding:
|
||||
color: purple
|
||||
inputs:
|
||||
filename:
|
||||
description: 'A comma separated list of code coverage files to analyse. Also accepts glob patterns.'
|
||||
description: 'A comma separated list of code coverage files to analyse. Also supports using glob patterns to match multiple files.'
|
||||
required: true
|
||||
badge:
|
||||
description: 'Include a Line Rate coverage badge in the output using shields.io - true / false (default).'
|
||||
@@ -42,7 +42,7 @@ inputs:
|
||||
default: '50 75'
|
||||
runs:
|
||||
using: 'docker'
|
||||
image: 'docker://ghcr.io/irongut/codecoveragesummary:v1.3.0-beta'
|
||||
image: 'docker://ghcr.io/irongut/codecoveragesummary:v1.3.0'
|
||||
args:
|
||||
- '--files'
|
||||
- ${{ inputs.filename }}
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<ItemGroup>
|
||||
<PackageReference Include="CommandLineParser" Version="2.9.1" />
|
||||
<PackageReference Include="Microsoft.Extensions.FileSystemGlobbing" Version="6.0.0" />
|
||||
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.16.1" />
|
||||
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.17.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -0,0 +1,476 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<coverage branch-rate="NaN" branches-covered="NaN" branches-valid="NaN" complexity="NaN" line-rate="0.3705" lines-covered="103" lines-valid="278" timestamp="1656158672.7938" version="">
|
||||
<sources>
|
||||
<source>/home/runner/work/climatedatastore/climatedatastore/climatedatastoreToolbox/</source>
|
||||
</sources>
|
||||
<packages>
|
||||
<package branch-rate="NaN" complexity="NaN" line-rate="0.3705" name="">
|
||||
<classes>
|
||||
<class branch-rate="NaN" complexity="NaN" filename="climateDataStoreDownload.m" line-rate="0.91667" name="climateDataStoreDownload">
|
||||
<methods/>
|
||||
<lines>
|
||||
<line hits="5" number="42"/>
|
||||
<line hits="5" number="44"/>
|
||||
<line hits="5" number="45"/>
|
||||
<line hits="5" number="46"/>
|
||||
<line hits="0" number="47"/>
|
||||
<line hits="5" number="50"/>
|
||||
<line hits="5" number="51"/>
|
||||
<line hits="5" number="52"/>
|
||||
<line hits="3" number="53"/>
|
||||
<line hits="2" number="55"/>
|
||||
<line hits="2" number="57"/>
|
||||
<line hits="2" number="58"/>
|
||||
</lines>
|
||||
</class>
|
||||
<class branch-rate="NaN" complexity="NaN" filename="climateDataStoreDownloadAsync.m" line-rate="0.8" name="climateDataStoreDownloadAsync">
|
||||
<methods/>
|
||||
<lines>
|
||||
<line hits="5" number="54"/>
|
||||
<line hits="4" number="56"/>
|
||||
<line hits="5" number="57"/>
|
||||
<line hits="0" number="58"/>
|
||||
<line hits="5" number="61"/>
|
||||
</lines>
|
||||
</class>
|
||||
<class branch-rate="NaN" complexity="NaN" filename="climateDataStoreDownloadFuture.m" line-rate="0.86275" name="climateDataStoreDownloadFuture">
|
||||
<methods>
|
||||
<method branch-rate="NaN" line-rate="0.90909" name="climateDataStoreDownloadFuture" signature="obj = climateDataStoreDownloadFuture(datasetName, datasetOptions, options)">
|
||||
<lines>
|
||||
<line hits="10" number="83"/>
|
||||
<line hits="10" number="84"/>
|
||||
<line hits="10" number="85"/>
|
||||
<line hits="10" number="86"/>
|
||||
<line hits="10" number="89"/>
|
||||
<line hits="10" number="99"/>
|
||||
<line hits="10" number="101"/>
|
||||
<line hits="10" number="102"/>
|
||||
<line hits="7" number="103"/>
|
||||
<line hits="3" number="104"/>
|
||||
<line hits="3" number="105"/>
|
||||
<line hits="3" number="106"/>
|
||||
<line hits="3" number="107"/>
|
||||
<line hits="2" number="108"/>
|
||||
<line hits="1" number="109"/>
|
||||
<line hits="1" number="110"/>
|
||||
<line hits="0" number="112"/>
|
||||
<line hits="0" number="115"/>
|
||||
<line hits="3" number="117"/>
|
||||
<line hits="3" number="118"/>
|
||||
<line hits="7" number="122"/>
|
||||
<line hits="7" number="123"/>
|
||||
</lines>
|
||||
</method>
|
||||
<method branch-rate="NaN" line-rate="0.875" name="cancel" signature="cancel(obj)">
|
||||
<lines>
|
||||
<line hits="1" number="131"/>
|
||||
<line hits="0" number="132"/>
|
||||
<line hits="1" number="135"/>
|
||||
<line hits="1" number="136"/>
|
||||
<line hits="1" number="138"/>
|
||||
<line hits="1" number="139"/>
|
||||
<line hits="1" number="140"/>
|
||||
<line hits="1" number="141"/>
|
||||
</lines>
|
||||
</method>
|
||||
<method branch-rate="NaN" line-rate="0.9" name="wait" signature="wait(obj, timeout)">
|
||||
<lines>
|
||||
<line hits="8" number="158"/>
|
||||
<line hits="2" number="159"/>
|
||||
<line hits="6" number="162"/>
|
||||
<line hits="6" number="163"/>
|
||||
<line hits="6" number="164"/>
|
||||
<line hits="2" number="165"/>
|
||||
<line hits="2" number="166"/>
|
||||
<line hits="2" number="167"/>
|
||||
<line hits="6" number="169"/>
|
||||
<line hits="0" number="170"/>
|
||||
</lines>
|
||||
</method>
|
||||
<method branch-rate="NaN" line-rate="1" name="get.OutputArguments" signature="result = get.OutputArguments(obj)">
|
||||
<lines>
|
||||
<line hits="16" number="178"/>
|
||||
<line hits="16" number="179"/>
|
||||
</lines>
|
||||
</method>
|
||||
<method branch-rate="NaN" line-rate="1" name="get.RunningDuration" signature="result = get.RunningDuration(obj)">
|
||||
<lines>
|
||||
<line hits="3" number="183"/>
|
||||
<line hits="3" number="184"/>
|
||||
<line hits="2" number="186"/>
|
||||
<line hits="1" number="189"/>
|
||||
</lines>
|
||||
</method>
|
||||
<method branch-rate="NaN" line-rate="1" name="get.State" signature="result = get.State(obj)">
|
||||
<lines>
|
||||
<line hits="15" number="194"/>
|
||||
<line hits="15" number="195"/>
|
||||
</lines>
|
||||
</method>
|
||||
<method branch-rate="NaN" line-rate="0.5625" name="update" signature="update(obj)">
|
||||
<lines>
|
||||
<line hits="50" number="210"/>
|
||||
<line hits="5" number="211"/>
|
||||
<line hits="45" number="214"/>
|
||||
<line hits="45" number="215"/>
|
||||
<line hits="0" number="216"/>
|
||||
<line hits="0" number="217"/>
|
||||
<line hits="0" number="218"/>
|
||||
<line hits="0" number="219"/>
|
||||
<line hits="0" number="221"/>
|
||||
<line hits="0" number="223"/>
|
||||
<line hits="0" number="224"/>
|
||||
<line hits="45" number="228"/>
|
||||
<line hits="45" number="229"/>
|
||||
<line hits="34" number="230"/>
|
||||
<line hits="11" number="231"/>
|
||||
<line hits="3" number="232"/>
|
||||
</lines>
|
||||
</method>
|
||||
<method branch-rate="NaN" line-rate="1" name="getResultsIfAvailable" signature="getResultsIfAvailable(obj)">
|
||||
<lines>
|
||||
<line hits="34" number="237"/>
|
||||
<line hits="29" number="238"/>
|
||||
<line hits="5" number="243"/>
|
||||
<line hits="5" number="244"/>
|
||||
<line hits="5" number="246"/>
|
||||
<line hits="5" number="247"/>
|
||||
<line hits="5" number="248"/>
|
||||
<line hits="5" number="249"/>
|
||||
<line hits="5" number="252"/>
|
||||
<line hits="5" number="255"/>
|
||||
<line hits="5" number="259"/>
|
||||
<line hits="3" number="261"/>
|
||||
<line hits="3" number="262"/>
|
||||
<line hits="3" number="265"/>
|
||||
<line hits="2" number="268"/>
|
||||
<line hits="2" number="269"/>
|
||||
<line hits="2" number="270"/>
|
||||
<line hits="5" number="272"/>
|
||||
<line hits="5" number="273"/>
|
||||
</lines>
|
||||
</method>
|
||||
<method branch-rate="NaN" line-rate="0.72727" name="getErrorInfo" signature="getErrorInfo(obj)">
|
||||
<lines>
|
||||
<line hits="3" number="278"/>
|
||||
<line hits="2" number="279"/>
|
||||
<line hits="1" number="282"/>
|
||||
<line hits="1" number="293"/>
|
||||
<line hits="1" number="294"/>
|
||||
<line hits="0" number="295"/>
|
||||
<line hits="0" number="296"/>
|
||||
<line hits="0" number="298"/>
|
||||
<line hits="1" number="300"/>
|
||||
<line hits="1" number="301"/>
|
||||
<line hits="1" number="302"/>
|
||||
</lines>
|
||||
</method>
|
||||
<method branch-rate="NaN" line-rate="1" name="makeStringsChars" signature="theStruct = makeStringsChars(theStruct)">
|
||||
<lines>
|
||||
<line hits="10" number="308"/>
|
||||
<line hits="10" number="309"/>
|
||||
<line hits="70" number="310"/>
|
||||
<line hits="70" number="311"/>
|
||||
<line hits="60" number="313"/>
|
||||
<line hits="10" number="316"/>
|
||||
</lines>
|
||||
</method>
|
||||
</methods>
|
||||
<lines>
|
||||
<line hits="10" number="73"/>
|
||||
<line hits="10" number="83"/>
|
||||
<line hits="10" number="84"/>
|
||||
<line hits="10" number="85"/>
|
||||
<line hits="10" number="86"/>
|
||||
<line hits="10" number="89"/>
|
||||
<line hits="10" number="99"/>
|
||||
<line hits="10" number="101"/>
|
||||
<line hits="10" number="102"/>
|
||||
<line hits="7" number="103"/>
|
||||
<line hits="3" number="104"/>
|
||||
<line hits="3" number="105"/>
|
||||
<line hits="3" number="106"/>
|
||||
<line hits="3" number="107"/>
|
||||
<line hits="2" number="108"/>
|
||||
<line hits="1" number="109"/>
|
||||
<line hits="1" number="110"/>
|
||||
<line hits="0" number="112"/>
|
||||
<line hits="0" number="115"/>
|
||||
<line hits="3" number="117"/>
|
||||
<line hits="3" number="118"/>
|
||||
<line hits="7" number="122"/>
|
||||
<line hits="7" number="123"/>
|
||||
<line hits="1" number="131"/>
|
||||
<line hits="0" number="132"/>
|
||||
<line hits="1" number="135"/>
|
||||
<line hits="1" number="136"/>
|
||||
<line hits="1" number="138"/>
|
||||
<line hits="1" number="139"/>
|
||||
<line hits="1" number="140"/>
|
||||
<line hits="1" number="141"/>
|
||||
<line hits="8" number="155"/>
|
||||
<line hits="8" number="158"/>
|
||||
<line hits="2" number="159"/>
|
||||
<line hits="6" number="162"/>
|
||||
<line hits="6" number="163"/>
|
||||
<line hits="6" number="164"/>
|
||||
<line hits="2" number="165"/>
|
||||
<line hits="2" number="166"/>
|
||||
<line hits="2" number="167"/>
|
||||
<line hits="6" number="169"/>
|
||||
<line hits="0" number="170"/>
|
||||
<line hits="16" number="178"/>
|
||||
<line hits="16" number="179"/>
|
||||
<line hits="3" number="183"/>
|
||||
<line hits="3" number="184"/>
|
||||
<line hits="2" number="186"/>
|
||||
<line hits="1" number="189"/>
|
||||
<line hits="15" number="194"/>
|
||||
<line hits="15" number="195"/>
|
||||
<line hits="50" number="210"/>
|
||||
<line hits="5" number="211"/>
|
||||
<line hits="45" number="214"/>
|
||||
<line hits="45" number="215"/>
|
||||
<line hits="0" number="216"/>
|
||||
<line hits="0" number="217"/>
|
||||
<line hits="0" number="218"/>
|
||||
<line hits="0" number="219"/>
|
||||
<line hits="0" number="221"/>
|
||||
<line hits="0" number="223"/>
|
||||
<line hits="0" number="224"/>
|
||||
<line hits="45" number="228"/>
|
||||
<line hits="45" number="229"/>
|
||||
<line hits="34" number="230"/>
|
||||
<line hits="11" number="231"/>
|
||||
<line hits="3" number="232"/>
|
||||
<line hits="34" number="237"/>
|
||||
<line hits="29" number="238"/>
|
||||
<line hits="5" number="243"/>
|
||||
<line hits="5" number="244"/>
|
||||
<line hits="5" number="246"/>
|
||||
<line hits="5" number="247"/>
|
||||
<line hits="5" number="248"/>
|
||||
<line hits="5" number="249"/>
|
||||
<line hits="5" number="252"/>
|
||||
<line hits="5" number="255"/>
|
||||
<line hits="5" number="259"/>
|
||||
<line hits="3" number="261"/>
|
||||
<line hits="3" number="262"/>
|
||||
<line hits="3" number="265"/>
|
||||
<line hits="2" number="268"/>
|
||||
<line hits="2" number="269"/>
|
||||
<line hits="2" number="270"/>
|
||||
<line hits="5" number="272"/>
|
||||
<line hits="5" number="273"/>
|
||||
<line hits="3" number="278"/>
|
||||
<line hits="2" number="279"/>
|
||||
<line hits="1" number="282"/>
|
||||
<line hits="1" number="293"/>
|
||||
<line hits="1" number="294"/>
|
||||
<line hits="0" number="295"/>
|
||||
<line hits="0" number="296"/>
|
||||
<line hits="0" number="298"/>
|
||||
<line hits="1" number="300"/>
|
||||
<line hits="1" number="301"/>
|
||||
<line hits="1" number="302"/>
|
||||
<line hits="10" number="308"/>
|
||||
<line hits="10" number="309"/>
|
||||
<line hits="70" number="310"/>
|
||||
<line hits="70" number="311"/>
|
||||
<line hits="60" number="313"/>
|
||||
<line hits="10" number="316"/>
|
||||
</lines>
|
||||
</class>
|
||||
<class branch-rate="NaN" complexity="NaN" filename="doc/readSatelliteSeaIceThickness.m" line-rate="0" name="readSatelliteSeaIceThickness">
|
||||
<methods/>
|
||||
<lines>
|
||||
<line hits="0" number="4"/>
|
||||
<line hits="0" number="7"/>
|
||||
<line hits="0" number="8"/>
|
||||
<line hits="0" number="9"/>
|
||||
<line hits="0" number="10"/>
|
||||
<line hits="0" number="11"/>
|
||||
<line hits="0" number="12"/>
|
||||
<line hits="0" number="13"/>
|
||||
<line hits="0" number="14"/>
|
||||
<line hits="0" number="15"/>
|
||||
<line hits="0" number="16"/>
|
||||
<line hits="0" number="17"/>
|
||||
<line hits="0" number="18"/>
|
||||
<line hits="0" number="19"/>
|
||||
</lines>
|
||||
</class>
|
||||
<class branch-rate="NaN" complexity="NaN" filename="doc/ComparingIceThickness.mlx" line-rate="0" name="ComparingIceThickness">
|
||||
<methods/>
|
||||
<lines>
|
||||
<line hits="0" number="1"/>
|
||||
<line hits="0" number="2"/>
|
||||
<line hits="0" number="3"/>
|
||||
<line hits="0" number="4"/>
|
||||
<line hits="0" number="5"/>
|
||||
<line hits="0" number="6"/>
|
||||
<line hits="0" number="7"/>
|
||||
<line hits="0" number="8"/>
|
||||
<line hits="0" number="9"/>
|
||||
<line hits="0" number="10"/>
|
||||
<line hits="0" number="11"/>
|
||||
<line hits="0" number="12"/>
|
||||
<line hits="0" number="13"/>
|
||||
<line hits="0" number="14"/>
|
||||
<line hits="0" number="15"/>
|
||||
<line hits="0" number="16"/>
|
||||
<line hits="0" number="17"/>
|
||||
<line hits="0" number="18"/>
|
||||
<line hits="0" number="19"/>
|
||||
<line hits="0" number="21"/>
|
||||
<line hits="0" number="22"/>
|
||||
<line hits="0" number="23"/>
|
||||
<line hits="0" number="24"/>
|
||||
<line hits="0" number="25"/>
|
||||
<line hits="0" number="26"/>
|
||||
<line hits="0" number="27"/>
|
||||
<line hits="0" number="28"/>
|
||||
<line hits="0" number="29"/>
|
||||
<line hits="0" number="30"/>
|
||||
</lines>
|
||||
</class>
|
||||
<class branch-rate="NaN" complexity="NaN" filename="doc/GettingStarted.mlx" line-rate="0" name="GettingStarted">
|
||||
<methods/>
|
||||
<lines>
|
||||
<line hits="0" number="1"/>
|
||||
<line hits="0" number="2"/>
|
||||
<line hits="0" number="3"/>
|
||||
<line hits="0" number="4"/>
|
||||
<line hits="0" number="5"/>
|
||||
<line hits="0" number="6"/>
|
||||
<line hits="0" number="7"/>
|
||||
<line hits="0" number="8"/>
|
||||
<line hits="0" number="9"/>
|
||||
<line hits="0" number="10"/>
|
||||
<line hits="0" number="11"/>
|
||||
<line hits="0" number="12"/>
|
||||
<line hits="0" number="13"/>
|
||||
<line hits="0" number="14"/>
|
||||
<line hits="0" number="15"/>
|
||||
<line hits="0" number="16"/>
|
||||
<line hits="0" number="17"/>
|
||||
<line hits="0" number="19"/>
|
||||
<line hits="0" number="20"/>
|
||||
<line hits="0" number="21"/>
|
||||
<line hits="0" number="22"/>
|
||||
<line hits="0" number="23"/>
|
||||
<line hits="0" number="24"/>
|
||||
<line hits="0" number="25"/>
|
||||
<line hits="0" number="26"/>
|
||||
<line hits="0" number="27"/>
|
||||
<line hits="0" number="28"/>
|
||||
</lines>
|
||||
</class>
|
||||
<class branch-rate="NaN" complexity="NaN" filename="util/getUserDirectory.m" line-rate="0" name="getUserDirectory">
|
||||
<methods/>
|
||||
<lines>
|
||||
<line hits="0" number="5"/>
|
||||
<line hits="0" number="6"/>
|
||||
<line hits="0" number="7"/>
|
||||
<line hits="0" number="9"/>
|
||||
</lines>
|
||||
</class>
|
||||
<class branch-rate="NaN" complexity="NaN" filename="util/setupCDSAPIIfNeeded.m" line-rate="0" name="setupCDSAPIIfNeeded">
|
||||
<methods/>
|
||||
<lines>
|
||||
<line hits="0" number="8"/>
|
||||
<line hits="0" number="10"/>
|
||||
<line hits="0" number="12"/>
|
||||
<line hits="0" number="14"/>
|
||||
<line hits="0" number="18"/>
|
||||
<line hits="0" number="19"/>
|
||||
<line hits="0" number="21"/>
|
||||
<line hits="0" number="22"/>
|
||||
<line hits="0" number="23"/>
|
||||
<line hits="0" number="28"/>
|
||||
<line hits="0" number="30"/>
|
||||
<line hits="0" number="32"/>
|
||||
<line hits="0" number="33"/>
|
||||
<line hits="0" number="35"/>
|
||||
<line hits="0" number="36"/>
|
||||
<line hits="0" number="37"/>
|
||||
<line hits="0" number="38"/>
|
||||
<line hits="0" number="39"/>
|
||||
<line hits="0" number="42"/>
|
||||
<line hits="0" number="43"/>
|
||||
<line hits="0" number="46"/>
|
||||
<line hits="0" number="47"/>
|
||||
<line hits="0" number="50"/>
|
||||
<line hits="0" number="51"/>
|
||||
<line hits="0" number="52"/>
|
||||
<line hits="0" number="53"/>
|
||||
<line hits="0" number="55"/>
|
||||
<line hits="0" number="56"/>
|
||||
</lines>
|
||||
</class>
|
||||
<class branch-rate="NaN" complexity="NaN" filename="util/setupPythonIfNeeded.m" line-rate="0" name="setupPythonIfNeeded">
|
||||
<methods/>
|
||||
<lines>
|
||||
<line hits="0" number="8"/>
|
||||
<line hits="0" number="9"/>
|
||||
<line hits="0" number="13"/>
|
||||
<line hits="0" number="15"/>
|
||||
<line hits="0" number="17"/>
|
||||
<line hits="0" number="22"/>
|
||||
<line hits="0" number="25"/>
|
||||
<line hits="0" number="27"/>
|
||||
<line hits="0" number="29"/>
|
||||
<line hits="0" number="31"/>
|
||||
<line hits="0" number="34"/>
|
||||
<line hits="0" number="35"/>
|
||||
<line hits="0" number="36"/>
|
||||
<line hits="0" number="37"/>
|
||||
<line hits="0" number="38"/>
|
||||
<line hits="0" number="39"/>
|
||||
<line hits="0" number="41"/>
|
||||
<line hits="0" number="42"/>
|
||||
<line hits="0" number="43"/>
|
||||
<line hits="0" number="44"/>
|
||||
<line hits="0" number="45"/>
|
||||
<line hits="0" number="51"/>
|
||||
<line hits="0" number="53"/>
|
||||
<line hits="0" number="55"/>
|
||||
<line hits="0" number="63"/>
|
||||
<line hits="0" number="64"/>
|
||||
<line hits="0" number="65"/>
|
||||
<line hits="0" number="66"/>
|
||||
<line hits="0" number="67"/>
|
||||
<line hits="0" number="68"/>
|
||||
<line hits="0" number="69"/>
|
||||
<line hits="0" number="70"/>
|
||||
<line hits="0" number="71"/>
|
||||
<line hits="0" number="72"/>
|
||||
<line hits="0" number="73"/>
|
||||
<line hits="0" number="74"/>
|
||||
<line hits="0" number="75"/>
|
||||
<line hits="0" number="76"/>
|
||||
<line hits="0" number="77"/>
|
||||
<line hits="0" number="80"/>
|
||||
<line hits="0" number="85"/>
|
||||
<line hits="0" number="86"/>
|
||||
<line hits="0" number="87"/>
|
||||
<line hits="0" number="89"/>
|
||||
<line hits="0" number="90"/>
|
||||
<line hits="0" number="95"/>
|
||||
<line hits="0" number="96"/>
|
||||
<line hits="0" number="97"/>
|
||||
<line hits="0" number="99"/>
|
||||
<line hits="0" number="100"/>
|
||||
<line hits="0" number="106"/>
|
||||
<line hits="0" number="107"/>
|
||||
<line hits="0" number="108"/>
|
||||
<line hits="0" number="109"/>
|
||||
<line hits="0" number="112"/>
|
||||
<line hits="0" number="113"/>
|
||||
<line hits="0" number="114"/>
|
||||
</lines>
|
||||
</class>
|
||||
</classes>
|
||||
</package>
|
||||
</packages>
|
||||
</coverage>
|
||||
Reference in New Issue
Block a user