Stucco icon indicating copy to clipboard operation
Stucco copied to clipboard

How to use Coverage tests?

Open Mxrcon opened this issue 1 year ago • 0 comments

Description Hey There :wave:, Thank you for this template, It has been pretty useful for my work and I've been using it to start my projects.

This is not a feature request, It's more a Question regarding using coverage tests within this template.

Describe the solution you'd like I would like to have coverage tests generated by plaster while keep using the standard template provided by stucco.

Describe any alternatives you've considered I've considered dropping the stucco template to use other build systems, but powershellbuild is what fit the best with my context.

Additional context here is the header of my psakeFile.ps1

    $PSBPreference.Build.CompileModule = $false
    $PSBPreference.Help.DefaultLocale = 'en-US'
    $PSBPreference.Test.OutputFile = 'out/testResults.xml'
    $PSBPreference.Test.ImportModule = $true
    $PSBPreference.Test.CodeCoverage.Enabled  = $true
    $PSBPreference.Test.CodeCoverage.OutputFormat= "JaCoCo"
    $PSBPreference.Test.CodeCoverage.OutputFile= "out/CoverageResults.xml"

My problem is that my coverage results are like this:

Type: [Instruction]: 0.000%
Type: [Line]: 0.000%
Type: [Method]: 0.000%
Type: [Class]: 100.000%

I don't understand why I'm not getting coverage for methods, I'm not using any class on this project.

Here is my overall structure:

├── build.ps1
├── CHANGELOG.md
├── Dockerfile
├── LICENSE
├── makefile
├── psakeFile.ps1
├── README.md
├── requirements.psd1
├── resources
├── Module-Name
│   ├── Private
│   │   ├── Api-Versions
│   │   │   ├── health.ps1
│   │   │   ├── v1Search.ps1
│   │   │   └── v1Solve.ps1
│   │   └── Web-Pages
│   │       └── home_page.html
│   ├── Public
│   │   ├── Get-Binary.ps1
│   │   ├── Get-Version.ps1
│   │   ├── Start-Server.ps1
│   │   └── Test-Env.ps1
│   ├── Module-Name.psd1
│   └── Module-Name.psm1
└── tests
    ├── Endpoints
    │   ├── Health.tests.ps1
    │   ├── Search.tests.ps1
    │   └── Solve.tests.ps1
    ├── Help.tests.ps1
    ├── Manifest.tests.ps1
    ├── MetaFixers.psm1
    ├── Meta.tests.ps1
    ├── readme.md
    ├── ScriptAnalyzerSettings.psd1
    └── Unit
        └── Public
            └── Test-Env.tests.ps1

Here is my code coverage output:

Covered 55% / 75%. 20 analyzed Commands in 1 File.
Missed commands:

File            Class Function                   Line Command
----            ----- --------                   ---- -------
MetaFixers.psm1       ConvertTo-UTF8               19 $content = Get-Content -Raw -Encoding Unicode -Path $FileInfo.FullName
MetaFixers.psm1       ConvertTo-UTF8               20 [System.IO.File]::WriteAllText($FileInfo.FullName, $content, [System.Text.Encoding…
MetaFixers.psm1       ConvertTo-SpaceIndentation   33 $content = (Get-Content -Raw -Path $FileInfo.FullName) -replace "`t", '    '
MetaFixers.psm1       ConvertTo-SpaceIndentation   33 Get-Content -Raw -Path $FileInfo.FullName
MetaFixers.psm1       ConvertTo-SpaceIndentation   34 [IO.File]::WriteAllText($FileInfo.FullName, $content)
MetaFixers.psm1       Get-UnicodeFilesList         79 $root
MetaFixers.psm1       Get-UnicodeFilesList         79 Get-TextFilesList
MetaFixers.psm1       Get-UnicodeFilesList         79 Where-Object { Test-FileUnicode $_ }
MetaFixers.psm1       Get-UnicodeFilesList         79 Test-FileUnicode $_



Code Coverage:

Type: [Instruction]: 0.000%
Type: [Line]: 0.000%
Type: [Method]: 0.000%
Type: [Class]: 100.000%


Would you mind to guide me on how to add coverage tests as intended without stop using your template? I really Like it and would like to stick with it as long as possible.

Mxrcon avatar Dec 21 '22 02:12 Mxrcon