@@ -45,6 +45,7 @@ if ($Script:BuildEnv.OptionTranscriptEnabled) {
4545 Start-Transcript -Path $TranscriptLog -Append -WarningAction:SilentlyContinue
4646}
4747
48+ #$Script:BuildRoot = $BuildRoot
4849#region Configure
4950#Synopsis: Validate system requirements are met
5051task ValidateRequirements {
@@ -241,6 +242,50 @@ task RunPSScriptAnalyzeOnPublicSrcFunctions {
241242}
242243#endregion
243244
245+ #region Tests
246+ task RunMetaTests LoadRequiredModules, {
247+ Write-Description White 'Running meta tests with Pester' -accent
248+ $ENV:BuildRoot = $BuildRoot
249+ $invokePesterParams = @{
250+ Strict = $true
251+ PassThru = $true
252+ Verbose = $false
253+ EnableExit = $false
254+ }
255+ $testResults = Invoke-Pester -Tag 'MetaTest' $(Join-Path $BuildRoot 'Tests') @invokePesterParams
256+ $numberFails = $testResults.FailedCount
257+ assert($numberFails -eq 0) ('Failed "{0}" meta tests.' -f $numberFails)
258+ }
259+
260+ task RunUnitTests LoadRequiredModules, {
261+ Write-Description White 'Running Unit tests with Pester' -accent
262+ $ENV:BuildRoot = $BuildRoot
263+ $invokePesterParams = @{
264+ Strict = $true
265+ PassThru = $true
266+ Verbose = $false
267+ EnableExit = $false
268+ }
269+ $testResults = Invoke-Pester -tag 'UnitTest' $(Join-Path $BuildRoot 'Tests') @invokePesterParams
270+ $numberFails = $testResults.FailedCount
271+ assert($numberFails -eq 0) ('Failed "{0}" unit tests.' -f $numberFails)
272+ }
273+
274+ task RunIntergrationTests LoadRequiredModules, {
275+ Write-Description White 'Running Intergration tests with Pester' -accent
276+ $ENV:BuildRoot = $BuildRoot
277+ $invokePesterParams = @{
278+ Strict = $true
279+ PassThru = $true
280+ Verbose = $false
281+ EnableExit = $false
282+ }
283+ $testResults = Invoke-Pester -tag 'IntergrationTest' $(Join-Path $BuildRoot 'Tests') @invokePesterParams
284+ $numberFails = $testResults.FailedCount
285+ assert($numberFails -eq 0) ('Failed "{0}" unit tests.' -f $numberFails)
286+ }
287+ #endregion
288+
244289#region Documentation/Help files
245290# Synopsis: Build the markdown help files with PlatyPS
246291task CreateMarkdownHelp GetPublicFunctions, {
@@ -826,6 +871,10 @@ task BuildSessionCleanup CleanScratchDirectory, {
826871#endregion
827872
828873#region Main tasks
874+ # Synopsis: Run all tests
875+ task Tests RunMetaTests, RunUnitTests, RunIntergrationTests {
876+
877+ }
829878# Synopsis: Build the module
830879task Build Configure, CodeHealthReport, PrepareStage, GetPublicFunctions, SanitizeCode, CreateHelp, CreateModulePSM1, CreateModuleManifest, AnalyzeModuleRelease, PushVersionRelease, PushCurrentRelease, CreateProjectHelp, PostBuildTasks, BuildSessionCleanup, {
831880
@@ -847,5 +896,5 @@ task AddMissingCBH Configure, CleanScratchDirectory, InsertCBHInPublicFunctions,
847896}
848897
849898# Synopsis: Default task when running Invoke-Build
850- task . Build
899+ task . Tests, Build
851900#endregion
0 commit comments