2.1.5 2026-07-08
- Fixed two generator bugs that could make a generated test fail on PesterForge’s account instead of yours. First: on a function with a parameter type PowerShell can’t resolve (dbatools’
[DbaInstance]is the common case), the mandatory-parameter assertions crashed with “Cannot index into a null array.” They now report Inconclusive. Second: a missing command dependency is now detected by exception type, not by matching error text that PowerShell 7.6.3 phrases differently than the generator expected, so the test reports the missing dependency instead of failing hard. - Re-measured on the internal benchmark of 195 real PowerShell functions: 195 of 195 generated test files are now free of failures caused by PesterForge itself. Four test failures remain across the whole benchmark, and each one is a real finding in the code under test. The release before this one scored 65 of 195.
2.1.4 2026-07-07
- Added failure classification to the internal benchmark: every generated-test failure is now labeled as either PesterForge’s own defect or a real finding in the code under test. Generated output didn’t change in this release; this measurement is what found the two bugs 2.1.5 fixed.
2.1.3 2026-07-07
- Three fixes for generating tests against code that doesn’t follow PesterForge’s own conventions. The generator no longer asserts its own file-header style against source that never claimed it. It no longer crashes on parameters whose types it can’t load. And when the function under test calls into a module that isn’t loaded, the generated tests now name the missing dependency and report Inconclusive, where before the whole test block failed.
- A parameter default that is an absolute path no longer gets echoed into a generated comment, so a generated test carries nothing that identifies the machine it was written on.
- Measured effect across the same 195-function benchmark: average failures per generated test file dropped from 2.99 to 1.01.
2.1.2 2026-07-07
- Fixed a locator bug that broke every generated test whose source file sat outside the project root: the test couldn’t find its own target, every assertion in the file failed, and your absolute source path was written into the generated file. The locator now computes a genuine relative path. When none exists (source on a different drive), you get a clearly marked placeholder and a skipped test.
- The air-gap regression test now scans the entire generated file for absolute paths rather than only the parameter defaults.
2.1.1 2026-07-06
- Fixed
Import-Module PesterForgefailing under Windows PowerShell 5.1 with “The string is missing the terminator.” Root cause was file encoding: 46 files were saved as UTF-8 without a byte-order mark, which 5.1 reads as ANSI and mangles. All 46 were re-saved, and a permanent encoding test now fails the internal build if that class of problem ever comes back.
2.1.0 2026-07-06
- Plain-English command names:
New-PesterTests,Get-PesterCoverage,Measure-FunctionTestability,Start-TestRun, andNew-TestProject. The original names still work. A newabout_PesterForgehelp topic lists every customer-facing command, and 14 function help files gained realistic examples they lacked. - Generated test files no longer embed an absolute user path in their param block default; the default now derives from the test file’s own location.
- A companion MCP server, PesterForge.MCP v1.0.0, exposes the same engine to MCP clients. Details on the PesterForge MCP page.
2.0.0 2026-05-24
- AI-generated output became complete test bodies. Before this release, AI enrichment produced scaffolding with skipped stubs; now the generator hands the AI your source and a pre-built scaffold, plus optionally example tests from your own project so the output matches your house style.
- New controls: a convention file (
PF-Convention.psd1) that injects your project’s error categories into generated assertions, an opt-in confidence check that runs the generated test right after writing it and records the outcome on the result, and automatic AI escalation when a deterministic pass would come back more than 60 percent stubs (turn it off with-NoAutoEscalateon metered API plans). - Every function profile gained a TestabilityScore (Low, Medium, or High), and a low-scoring function gets an informational banner in its generated test file so you know why the output is thin.
1.0.0 to 1.0.3 2026-05-12
- 1.0.0 was the first stable release. Three patch releases followed the same day: small analyzer fixes (1.0.1), a documentation pass (1.0.2), and a banner at the top of any generated file that contains placeholder tests, stating how many (1.0.3).