From eaf04a0b4c2e6b7d4ace32ee670bd2df7bc755ee Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 31 May 2026 12:27:14 +0000 Subject: [PATCH 1/8] chore: prepare develop for next prerelease --- project.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project.json b/project.json index e85527c..587d1e8 100644 --- a/project.json +++ b/project.json @@ -1,7 +1,7 @@ { "ProjectName": "NovaModuleTools", "Description": "NovaModuleTools is an enterprise-focused build tool for Agentic Copilot PowerShell module development, with a strong emphasis on structure, maintainability, and automated CI/CD pipelines.", - "Version": "3.2.0", + "Version": "3.2.1-preview", "Preamble": [ "Set-StrictMode -Version Latest", "$ErrorActionPreference = 'Stop'" From 6c4d1ebc707573f04fcf76ae612a2050ba883232 Mon Sep 17 00:00:00 2001 From: Stiwi Gabriel Courage Date: Sun, 31 May 2026 17:58:34 +0200 Subject: [PATCH 2/8] feat(#255): Improve Test-NovaBuild error handling and add build-validation coverage to example scaffold (#256) --- CHANGELOG.md | 5 +- RELEASE_NOTE.md | 4 +- docs/NovaModuleTools/en-US/Test-NovaBuild.md | 2 + .../quality/GetNovaTestWorkflowContext.ps1 | 27 ++++++++++- src/resources/example/README.md | 12 ++++- .../Get-ExampleGreeting.Integration.Tests.ps1 | 13 +++++ .../GetNovaTestWorkflowContext.Tests.ps1 | 48 +++++++++++++++++++ .../CopyNovaExampleProjectTemplate.Tests.ps1 | 1 + .../TestNovaBuild.Integration.Tests.ps1 | 14 ++++++ 9 files changed, 122 insertions(+), 4 deletions(-) create mode 100644 src/resources/example/tests/public/Get-ExampleGreeting.Integration.Tests.ps1 diff --git a/CHANGELOG.md b/CHANGELOG.md index 806e4e8..10b56e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), ### Fixed +- `Test-NovaBuild` and `% nova test -b` now stop with a Nova-native error when a project has no `*.Integration.Tests.ps1` files, instead of leaking the raw async Pester exception. + - The new guidance explains where build-validation tests belong and reminds users to keep unit tests in `Invoke-NovaTest`. +- The packaged example scaffold now includes a minimal `*.Integration.Tests.ps1` file that imports the built module and validates `Get-ExampleGreeting`, so `nova init -e` projects can pass `Test-NovaBuild`. + ### Security ## [3.2.0] - 2026-05-31 @@ -510,4 +514,3 @@ This release was yanked because it removed the implicit `Pester` dependency, bef [0.0.6]: https://github.com/stiwicourage/NovaModuleTools/compare/Version_0.0.5...Version_0.0.6 [0.0.5]: https://github.com/stiwicourage/NovaModuleTools/compare/Version_0.0.4...Version_0.0.5 [0.0.4]: https://github.com/stiwicourage/NovaModuleTools/compare/Version_0.0.3...Version_0.0.4 - diff --git a/RELEASE_NOTE.md b/RELEASE_NOTE.md index 41d4dfe..d28e875 100644 --- a/RELEASE_NOTE.md +++ b/RELEASE_NOTE.md @@ -14,6 +14,9 @@ This file summarizes the release notes for NovaModuleTools. **UNRELEASED** chang ### Fixed +- `Test-NovaBuild` and `% nova test -b` now stop with a clear Nova-native error when a project has no `*.Integration.Tests.ps1` files, and the message now explains where build-validation tests belong plus when to use `Invoke-NovaTest` instead. +- The packaged example scaffold now includes a minimal build-validation integration test that imports the built module and checks `Get-ExampleGreeting`, so `nova init -e` projects can pass `Test-NovaBuild`. + ### Security ## [3.2.0] - 2026-05-31 @@ -259,4 +262,3 @@ This release was yanked because it removed the implicit `Pester` dependency befo ## [0.0.4] - 2024-06-25 ### Added - First PowerShell Gallery release of NovaModuleTools with the initial module workflow support. - diff --git a/docs/NovaModuleTools/en-US/Test-NovaBuild.md b/docs/NovaModuleTools/en-US/Test-NovaBuild.md index aff590a..338c8ce 100644 --- a/docs/NovaModuleTools/en-US/Test-NovaBuild.md +++ b/docs/NovaModuleTools/en-US/Test-NovaBuild.md @@ -35,6 +35,8 @@ This build-validation flow writes NUnit XML to `artifacts/TestResults.xml`. Unlike `Invoke-NovaTest`, this command does not enforce source-coverage targets. Use `Invoke-NovaTest` for the unit-test and code-coverage workflow, and use `Test-NovaBuild` when you need build-validation integration coverage that reflects the built module path. +If the current project does not contain any `*.Integration.Tests.ps1` files, `Test-NovaBuild` stops with a Nova-native error that explains the expected naming and reminds you to use `Invoke-NovaTest` for unit tests. + `-OverrideWarning` lets the nested build-validation flow continue even if the `src/public` layout guard reports zero or multiple top-level functions in a public file. With the default `BuildRecursiveFolders=true`, integration test files in nested folders under `tests` are discovered and run. Set `BuildRecursiveFolders=false` to limit discovery to top-level matching test files. diff --git a/src/private/quality/GetNovaTestWorkflowContext.ps1 b/src/private/quality/GetNovaTestWorkflowContext.ps1 index 570ab85..1448011 100644 --- a/src/private/quality/GetNovaTestWorkflowContext.ps1 +++ b/src/private/quality/GetNovaTestWorkflowContext.ps1 @@ -39,9 +39,11 @@ function Get-NovaTestWorkflowContext { $pesterConfig.CodeCoverage.CoveragePercentTarget = $coverageConfiguration.CoveragePercentTarget } - $pesterConfig.Run.Path = @( + $runPath = @( Get-NovaPesterRunPath -ProjectInfo $projectInfo -IncludePattern $workflowProfile.IncludePattern -ExcludePattern $workflowProfile.ExcludePattern ) + Assert-NovaDiscoveredTestPath -RunPath $runPath -ProjectInfo $projectInfo -WorkflowProfile $workflowProfile + $pesterConfig.Run.Path = $runPath $pesterConfig.Run.PassThru = $true $pesterConfig.Run.Exit = $true $pesterConfig.Run.Throw = $true @@ -72,6 +74,29 @@ function Get-NovaTestWorkflowContext { } } +function Assert-NovaDiscoveredTestPath { + [CmdletBinding()] + param( + [Parameter(Mandatory)][AllowEmptyCollection()][string[]]$RunPath, + [Parameter(Mandatory)][pscustomobject]$ProjectInfo, + [Parameter(Mandatory)][pscustomobject]$WorkflowProfile + ) + + if ($WorkflowProfile.Mode -ne 'BuildValidation' -or $RunPath.Count -gt 0) { + return + } + + $expectedPath = Join-Path $ProjectInfo.TestsDir 'public/Get-CommandName.Integration.Tests.ps1' + $message = @( + "The current project does not contain any build-validation integration tests matching '$($WorkflowProfile.IncludePattern)'." + 'Test-NovaBuild expects build-validation tests under the tests folder, for example tests/public/Get-CommandName.Integration.Tests.ps1.' + 'Add at least one *.Integration.Tests.ps1 file, then rerun Test-NovaBuild.' + 'Use Invoke-NovaTest for unit tests and Test-NovaBuild for build-validation integration tests.' + ) -join ' ' + + Stop-NovaOperation -Message $message -ErrorId 'Nova.Workflow.BuildValidationTestsMissing' -Category ObjectNotFound -TargetObject $expectedPath +} + function Get-NovaTestOptionValue { [CmdletBinding()] param( diff --git a/src/resources/example/README.md b/src/resources/example/README.md index e5e351b..db65a9b 100644 --- a/src/resources/example/README.md +++ b/src/resources/example/README.md @@ -23,6 +23,7 @@ It is meant to help a new user understand the smallest useful setup that can: - `src/private/Get-ExampleConfiguration.ps1` – a private helper used by the public function - `src/resources/greeting-config.json` – a resource file bundled into the built module - `tests/public/Get-ExampleGreeting.Tests.ps1` – source-mirrored tests for the public function +- `tests/public/Get-ExampleGreeting.Integration.Tests.ps1` – build-validation coverage that imports the built module and exercises the public command - `tests/private/Get-ExampleConfiguration.Tests.ps1` – source-mirrored tests for the private helper and resource resolution ## Quick start @@ -36,6 +37,7 @@ If `./dist/NovaModuleTools` is not available yet, build `NovaModuleTools` from t ```text PS> Import-Module ./dist/NovaModuleTools -Force PS> Set-Location ./src/resources/example +PS> Invoke-NovaTest PS> Test-NovaBuild PS> Invoke-NovaBuild PS> New-NovaModulePackage @@ -52,6 +54,7 @@ PS> Install-Module NovaModuleTools PS> Import-Module NovaModuleTools PS> $module = Get-Module NovaModuleTools -ListAvailable | Select-Object -First 1 PS> Set-Location (Join-Path $module.ModuleBase 'resources/example') +PS> Invoke-NovaTest PS> Test-NovaBuild PS> Invoke-NovaBuild PS> New-NovaModulePackage @@ -62,12 +65,18 @@ PS> Get-ExampleGreeting ## Expected result -After `Test-NovaBuild`, the example tests run against `src/**/*.ps1` and JaCoCo coverage is written to: +After `Invoke-NovaTest`, the example source-mirrored tests run against `src/**/*.ps1` and JaCoCo coverage is written to: ```text src/resources/example/artifacts/coverage.xml ``` +After `Test-NovaBuild`, the example build-validation test imports the built module from: + +```text +src/resources/example/dist/NovaExampleModule +``` + After `Invoke-NovaBuild`, the built module is written to: ```text @@ -120,6 +129,7 @@ This example is intentionally small, but it demonstrates the most important Nova - how public and private functions are combined into one module - how resource files are copied and used at runtime - how tests can run against source files before a build while still producing coverage +- how build-validation tests can import the built module and check the public command surface - where the current package, packaging, and raw-upload configuration keys live in `project.json` If you want a new project scaffold, use `PS> Initialize-NovaModule` (`% nova init`). If you want a concrete project you can inspect, run, or copy through `% nova init --example` / `% nova init -e`, use this example folder. diff --git a/src/resources/example/tests/public/Get-ExampleGreeting.Integration.Tests.ps1 b/src/resources/example/tests/public/Get-ExampleGreeting.Integration.Tests.ps1 new file mode 100644 index 0000000..ade496b --- /dev/null +++ b/src/resources/example/tests/public/Get-ExampleGreeting.Integration.Tests.ps1 @@ -0,0 +1,13 @@ +BeforeAll { + $projectRoot = Split-Path -Parent (Split-Path -Parent $PSScriptRoot) + $moduleManifestPath = Join-Path $projectRoot 'dist/NovaExampleModule/NovaExampleModule.psd1' + + Import-Module $moduleManifestPath -Force +} + +Describe 'Get-ExampleGreeting integration' { + It 'imports the built module and returns the public greeting' { + (Get-Command -Name 'Get-ExampleGreeting' -Module 'NovaExampleModule') | Should -Not -BeNullOrEmpty + Get-ExampleGreeting -Name 'Build validation' | Should -Be 'Hello, Build validation!' + } +} diff --git a/tests/private/quality/GetNovaTestWorkflowContext.Tests.ps1 b/tests/private/quality/GetNovaTestWorkflowContext.Tests.ps1 index a103191..a19d890 100644 --- a/tests/private/quality/GetNovaTestWorkflowContext.Tests.ps1 +++ b/tests/private/quality/GetNovaTestWorkflowContext.Tests.ps1 @@ -66,6 +66,19 @@ Describe 'Get-NovaTestWorkflowContext' { $result.Operation | Should -Be 'Build project, run build-validation integration tests, and write test results' } + It 'stops with an actionable error when build-validation tests are missing' { + $pesterConfig = & $script:getPesterConfig + $projectInfo = & $script:getProjectInfo -PesterSettings ([ordered]@{}) + + Mock Get-NovaProjectInfo {$projectInfo} + Mock New-PesterConfiguration {$pesterConfig} + Mock Get-NovaPesterRunPath {@()} + + { + Get-NovaTestWorkflowContext -TestOption @{TestMode = 'BuildValidation'} -BoundParameters @{} + } | Should -Throw '*does not contain any build-validation integration tests matching ''*.Integration.Tests.ps1''*Use Invoke-NovaTest for unit tests and Test-NovaBuild for build-validation integration tests.*' + } + It 'expands configured coverage paths into concrete project-relative source files' { $projectRoot = Join-Path $TestDrive 'coverage-project' foreach ($relativePath in @( @@ -153,6 +166,41 @@ Describe 'Get-NovaTestWorkflowOperation' { } } +Describe 'Assert-NovaDiscoveredTestPath' { + It 'returns silently when build-validation tests are present' { + { + Assert-NovaDiscoveredTestPath -RunPath @('/tmp/project/tests/public/Get-Thing.Integration.Tests.ps1') -ProjectInfo ([pscustomobject]@{ + TestsDir = '/tmp/project/tests' + }) -WorkflowProfile ([pscustomobject]@{ + Mode = 'BuildValidation' + IncludePattern = '*.Integration.Tests.ps1' + }) + } | Should -Not -Throw + } + + It 'returns silently for unit-test workflows when no tests are discovered' { + { + Assert-NovaDiscoveredTestPath -RunPath @() -ProjectInfo ([pscustomobject]@{ + TestsDir = '/tmp/project/tests' + }) -WorkflowProfile ([pscustomobject]@{ + Mode = 'Unit' + IncludePattern = '*.Tests.ps1' + }) + } | Should -Not -Throw + } + + It 'stops with the Nova build-validation guidance when no integration tests are discovered' { + { + Assert-NovaDiscoveredTestPath -RunPath @() -ProjectInfo ([pscustomobject]@{ + TestsDir = '/tmp/project/tests' + }) -WorkflowProfile ([pscustomobject]@{ + Mode = 'BuildValidation' + IncludePattern = '*.Integration.Tests.ps1' + }) + } | Should -Throw '*tests/public/Get-CommandName.Integration.Tests.ps1*' + } +} + Describe 'Assert-NovaPesterAvailable' { It 'stops with Nova.Dependency.PesterDependencyMissing when Pester is missing' { Mock Get-Module {@()} -ParameterFilter {$Name -eq 'Pester' -and $ListAvailable} diff --git a/tests/private/scaffold/CopyNovaExampleProjectTemplate.Tests.ps1 b/tests/private/scaffold/CopyNovaExampleProjectTemplate.Tests.ps1 index 5f2da39..828cdb7 100644 --- a/tests/private/scaffold/CopyNovaExampleProjectTemplate.Tests.ps1 +++ b/tests/private/scaffold/CopyNovaExampleProjectTemplate.Tests.ps1 @@ -43,6 +43,7 @@ Describe 'Copy-NovaExampleProjectTemplate' { $projectJson.Pester.CodeCoverage.Enabled | Should -BeTrue Test-Path -LiteralPath (Join-Path $destination 'tests/public/Get-ExampleGreeting.Tests.ps1') | Should -BeTrue + Test-Path -LiteralPath (Join-Path $destination 'tests/public/Get-ExampleGreeting.Integration.Tests.ps1') | Should -BeTrue Test-Path -LiteralPath (Join-Path $destination 'tests/private/Get-ExampleConfiguration.Tests.ps1') | Should -BeTrue } } diff --git a/tests/public/TestNovaBuild.Integration.Tests.ps1 b/tests/public/TestNovaBuild.Integration.Tests.ps1 index 906b926..3cd7c5f 100644 --- a/tests/public/TestNovaBuild.Integration.Tests.ps1 +++ b/tests/public/TestNovaBuild.Integration.Tests.ps1 @@ -12,4 +12,18 @@ Describe 'Test-NovaBuild integration' { } } | Should -Not -Throw } + + It 'fails with actionable guidance when the current project has no build-validation tests' { + $exampleProjectRoot = Join-Path $script:projectRoot 'src/resources/example' + $scenarioRoot = Join-Path $TestDrive 'missing-build-validation-tests' + $null = New-Item -ItemType Directory -Path $scenarioRoot -Force + Copy-Item -Path (Join-Path $exampleProjectRoot '*') -Destination $scenarioRoot -Recurse -Force + Remove-Item -LiteralPath (Join-Path $scenarioRoot 'tests/public/Get-ExampleGreeting.Integration.Tests.ps1') -Force + + { + Invoke-NovaPublicCommandIntegrationInLocation -Path $scenarioRoot -ScriptBlock { + Test-NovaBuild + } + } | Should -Throw '*does not contain any build-validation integration tests matching ''*.Integration.Tests.ps1''*Use Invoke-NovaTest for unit tests and Test-NovaBuild for build-validation integration tests.*' + } } From 88f13fe7a211c1bff42620ca8c8c65ccebafba1d Mon Sep 17 00:00:00 2001 From: Stiwi Gabriel Courage Date: Sun, 31 May 2026 18:46:57 +0200 Subject: [PATCH 3/8] fix: Enhance integration tests and update example scaffold to support dynamic project names --- CHANGELOG.md | 2 +- RELEASE_NOTE.md | 2 +- .../Get-ExampleGreeting.Integration.Tests.ps1 | 7 +++++-- .../CopyNovaExampleProjectTemplate.Tests.ps1 | 4 ++++ .../public/TestNovaBuild.Integration.Tests.ps1 | 18 ++++++++++++++++++ 5 files changed, 29 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 10b56e7..2a721f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,7 +17,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), - `Test-NovaBuild` and `% nova test -b` now stop with a Nova-native error when a project has no `*.Integration.Tests.ps1` files, instead of leaking the raw async Pester exception. - The new guidance explains where build-validation tests belong and reminds users to keep unit tests in `Invoke-NovaTest`. -- The packaged example scaffold now includes a minimal `*.Integration.Tests.ps1` file that imports the built module and validates `Get-ExampleGreeting`, so `nova init -e` projects can pass `Test-NovaBuild`. +- The packaged example scaffold now includes a minimal `*.Integration.Tests.ps1` file that resolves the generated `ProjectName`, imports the built module, and validates `Get-ExampleGreeting`, so `nova init -e` projects can pass `Test-NovaBuild` even after the scaffold rewrites `project.json`. ### Security diff --git a/RELEASE_NOTE.md b/RELEASE_NOTE.md index d28e875..fda7f57 100644 --- a/RELEASE_NOTE.md +++ b/RELEASE_NOTE.md @@ -15,7 +15,7 @@ This file summarizes the release notes for NovaModuleTools. **UNRELEASED** chang ### Fixed - `Test-NovaBuild` and `% nova test -b` now stop with a clear Nova-native error when a project has no `*.Integration.Tests.ps1` files, and the message now explains where build-validation tests belong plus when to use `Invoke-NovaTest` instead. -- The packaged example scaffold now includes a minimal build-validation integration test that imports the built module and checks `Get-ExampleGreeting`, so `nova init -e` projects can pass `Test-NovaBuild`. +- The packaged example scaffold now includes a minimal build-validation integration test that resolves the generated project name before importing the built module and checking `Get-ExampleGreeting`, so `nova init -e` projects can pass `Test-NovaBuild`. ### Security diff --git a/src/resources/example/tests/public/Get-ExampleGreeting.Integration.Tests.ps1 b/src/resources/example/tests/public/Get-ExampleGreeting.Integration.Tests.ps1 index ade496b..5cefe64 100644 --- a/src/resources/example/tests/public/Get-ExampleGreeting.Integration.Tests.ps1 +++ b/src/resources/example/tests/public/Get-ExampleGreeting.Integration.Tests.ps1 @@ -1,13 +1,16 @@ BeforeAll { $projectRoot = Split-Path -Parent (Split-Path -Parent $PSScriptRoot) - $moduleManifestPath = Join-Path $projectRoot 'dist/NovaExampleModule/NovaExampleModule.psd1' + $projectFile = Join-Path $projectRoot 'project.json' + $projectData = Get-Content -LiteralPath $projectFile -Raw | ConvertFrom-Json -AsHashtable + $script:moduleName = [string]$projectData.ProjectName + $moduleManifestPath = Join-Path $projectRoot "dist/$($script:moduleName)/$($script:moduleName).psd1" Import-Module $moduleManifestPath -Force } Describe 'Get-ExampleGreeting integration' { It 'imports the built module and returns the public greeting' { - (Get-Command -Name 'Get-ExampleGreeting' -Module 'NovaExampleModule') | Should -Not -BeNullOrEmpty + (Get-Command -Name 'Get-ExampleGreeting' -Module $script:moduleName) | Should -Not -BeNullOrEmpty Get-ExampleGreeting -Name 'Build validation' | Should -Be 'Hello, Build validation!' } } diff --git a/tests/private/scaffold/CopyNovaExampleProjectTemplate.Tests.ps1 b/tests/private/scaffold/CopyNovaExampleProjectTemplate.Tests.ps1 index 828cdb7..8dd4b9e 100644 --- a/tests/private/scaffold/CopyNovaExampleProjectTemplate.Tests.ps1 +++ b/tests/private/scaffold/CopyNovaExampleProjectTemplate.Tests.ps1 @@ -40,10 +40,14 @@ Describe 'Copy-NovaExampleProjectTemplate' { Copy-NovaExampleProjectTemplate -DestinationPath $destination.FullName $projectJson = Get-Content -LiteralPath (Join-Path $destination 'project.json') -Raw | ConvertFrom-Json -AsHashtable + $integrationTestContent = Get-Content -LiteralPath (Join-Path $destination 'tests/public/Get-ExampleGreeting.Integration.Tests.ps1') -Raw $projectJson.Pester.CodeCoverage.Enabled | Should -BeTrue Test-Path -LiteralPath (Join-Path $destination 'tests/public/Get-ExampleGreeting.Tests.ps1') | Should -BeTrue Test-Path -LiteralPath (Join-Path $destination 'tests/public/Get-ExampleGreeting.Integration.Tests.ps1') | Should -BeTrue Test-Path -LiteralPath (Join-Path $destination 'tests/private/Get-ExampleConfiguration.Tests.ps1') | Should -BeTrue + $integrationTestContent | Should -Match 'project\.json' + $integrationTestContent | Should -Match 'ProjectName' + $integrationTestContent | Should -Match '\$script:moduleName' } } diff --git a/tests/public/TestNovaBuild.Integration.Tests.ps1 b/tests/public/TestNovaBuild.Integration.Tests.ps1 index 3cd7c5f..20e4e49 100644 --- a/tests/public/TestNovaBuild.Integration.Tests.ps1 +++ b/tests/public/TestNovaBuild.Integration.Tests.ps1 @@ -26,4 +26,22 @@ Describe 'Test-NovaBuild integration' { } } | Should -Throw '*does not contain any build-validation integration tests matching ''*.Integration.Tests.ps1''*Use Invoke-NovaTest for unit tests and Test-NovaBuild for build-validation integration tests.*' } + + It 'passes for a scaffolded example whose project name differs from the packaged template name' { + $exampleProjectRoot = Join-Path $script:projectRoot 'src/resources/example' + $scenarioRoot = Join-Path $TestDrive 'renamed-build-validation-example' + $projectJsonPath = Join-Path $scenarioRoot 'project.json' + $null = New-Item -ItemType Directory -Path $scenarioRoot -Force + Copy-Item -Path (Join-Path $exampleProjectRoot '*') -Destination $scenarioRoot -Recurse -Force + + $projectData = Get-Content -LiteralPath $projectJsonPath -Raw | ConvertFrom-Json -AsHashtable + $projectData.ProjectName = 'BuildValidationExample' + $projectData | ConvertTo-Json -Depth 100 | Set-Content -LiteralPath $projectJsonPath + + { + Invoke-NovaPublicCommandIntegrationInLocation -Path $scenarioRoot -ScriptBlock { + Test-NovaBuild + } + } | Should -Not -Throw + } } From 227b1bf7389d2c186a886bcf9690478fc1b68931 Mon Sep 17 00:00:00 2001 From: Stiwi Gabriel Courage Date: Mon, 1 Jun 2026 20:33:13 +0200 Subject: [PATCH 4/8] fix: Simplify file path patterns in project.json reference documentation Closes Documentation error with formating. Fixes #257 --- docs/core-workflows.html | 8 ++++---- docs/project-json-reference.html | 4 +--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/docs/core-workflows.html b/docs/core-workflows.html index 0b9d86d..833e9cc 100644 --- a/docs/core-workflows.html +++ b/docs/core-workflows.html @@ -246,10 +246,10 @@

Run the tests

PS> Test-NovaBuild PS> Invoke-NovaTest -TagFilter unit,fast PS> Test-NovaBuild -ExcludeTagFilter slow - PS> Invoke-NovaTest -OutputVerbosity Detailed -OutputRenderMode Ansi - PS> $credential = Get-Credential - PS> $container = New-PesterContainer -Path 'tests/public/PublishNovaModule.Tests.ps1' -Data @{ Credential = $credential } - PS> Invoke-NovaTest -PesterConfigurationOverride @{ Run = @{ Container = @($container) } } +PS> Invoke-NovaTest -OutputVerbosity Detailed -OutputRenderMode Ansi +PS> $credential = Get-Credential +PS> $container = New-PesterContainer -Path 'tests/public/PublishNovaModule.Tests.ps1' -Data @{ Credential = $credential } +PS> Invoke-NovaTest -PesterConfigurationOverride @{ Run = @{ Container = @($container) } }