Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support test files alongside source like Pester suggests #108

Open
sjwestern opened this issue Oct 8, 2021 · 4 comments
Open

Support test files alongside source like Pester suggests #108

sjwestern opened this issue Oct 8, 2021 · 4 comments
Labels
20 - Enhancement 21 - Hacktoberfest These tickets are particularly easy to do without understanding the whole codebase

Comments

@sjwestern
Copy link

Is it possible to have test files next to their source files instead of in a separate directory?
This seems to be pretty standard and is the Pester docs recommended way of doing it.

@Jaykul
Copy link
Member

Jaykul commented Oct 9, 2021

Well, obviously I disagree that it's standard or the best way (and Pester itself certainly doesn't do that) but I would be happy to add support for Exclude. Honestly, I think we could even add a default Exclude = "*.Tests.ps1" although it would technically be a breaking change, so maybe not worth it.

You can easily hard code that in a fork for yourself though. You would just need to change line 206 of Build-Module.ps1

            # SilentlyContinue because there don't *HAVE* to be functions at all
            $AllScripts = Get-ChildItem -Path @($ModuleInfo.SourceDirectories).ForEach{ Join-Path $ModuleInfo.ModuleBase $_ } -Filter *.ps1 -Recurse -ErrorAction SilentlyContinue

to add -Exclude *.tests.ps1 like:

            # SilentlyContinue because there don't *HAVE* to be functions at all
            $AllScripts = Get-ChildItem -Path @($ModuleInfo.SourceDirectories).ForEach{ Join-Path $ModuleInfo.ModuleBase $_ } -Filter *.ps1 -Exclude *.tests.ps1 -Recurse -ErrorAction SilentlyContinue

@Jaykul
Copy link
Member

Jaykul commented Oct 9, 2021

I filed an issue against the Pester docs, because I can't find anyone who does that. I think they're talking about it from a "my first PowerShell script" practice, not module developers.

@nohwnd
Copy link

nohwnd commented Oct 12, 2021

@sjwestern putting test files next to your production files is just one of the ways to structure your projects. Pester suggests it as an option, because it is the simplest way to do it for simple projects. More advanced projects are usually split their code into src and tst / test / tests folder. The guidance in Pester docs was updated to reflect that.

@sjwestern
Copy link
Author

Thanks @Jaykul and @nohwnd appreciate your time.
If that's what most PowerShell module projects do then I'll stick with that.
I had just noticed the suggestion in Pester docs, which is similar to what Angular does - putting test files for components in the same location as the component files.

@Jaykul Jaykul added 20 - Enhancement 21 - Hacktoberfest These tickets are particularly easy to do without understanding the whole codebase labels Oct 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
20 - Enhancement 21 - Hacktoberfest These tickets are particularly easy to do without understanding the whole codebase
Projects
None yet
Development

No branches or pull requests

3 participants