Comments (11)
Hi @jcwalker:
- which folder is set as the current folder when you call
Invoke-Pester
? - Are you in the Tests\Integration or the DSC Module Root folder when you call
Invoke-Pester
? If the current folder is anything but the DSC Module Root folder the tests will fail.
Regarding the testing guidance, are you referring to this document? It might be that the testing guidance needs tweaking.
Thanks!
from dscresource.tests.
Hey @PlagueHO
Yes I am in the Tests\Integration folder. And yes I'm referring to that document.
So I should be calling Invoke-Pester from the module root folder and not from the Test\Integration folder?
Thanks for being so quick to respond to this.
from dscresource.tests.
Currently Initialize-TestEnvironment is written in a way that it requires to call Invoke-Pester from root folder, however I think we should modify it so that it works regardless of the location where we invoke tests from (this way we can easily execute either unit or integration tests only).
from dscresource.tests.
@KarolKaczmarek - that is a good idea - didn't think of that (I've usually just specified the -script
parameter on invoke-pester
). Although if you do run Invoke-Pester from a subfolder you'd end up with a copy of the DSCResource.Test in that folder as well - but I don't see that as a problem.
We could look for "$DSCModuleName.psd1"
in the current folder and if it is not found, walk up the directory tree to find it (that is risky though). Better idea might be to check current folder and if the two leaf nodes are named "Tests\Integration" then adjust the $RelativeModulePath
accordingly (e.g. $RelativeModulePath = "..\..\$DSCModuleName.psd1"
Would do something similar with the unit test path as well.
Should I give either of these two approaches a try and submit a PR if appropriate? Or is there a better way?
Tx
from dscresource.tests.
@jcwalker, glad to help. At the moment, the test initialization code does need to be called from the root folder of your DSC Module (via INvoke-Pester
), but as @KarolKaczmarek suggests, this might be able to be changed as executing just Integration or Unit tests only would be useful.
from dscresource.tests.
@PlagueHO
DscResource.Tests should always be cloned to the root directory, so that regardless of where we call tests from, there's always only one copy of it present.
To achieve that, just make sure that you obtain the root path within the integration_template.ps1 and copy DscResource.Tests there specifically (currently we copy it wherever we call Invoke-Pester from since we use the current location). You can do it in the same way as it's done in Initialize-TestEnvironment:
[String] $moduleRoot = Split-Path -Parent (Split-Path -Parent $Script:MyInvocation.MyCommand.Path)
I believe this should also fix the problem @jcwalker reported.
from dscresource.tests.
@KarolKaczmarek, your suggestion works 100% 👍 and does indeed resolve @jcwalker's issue.
I'll submit a PR for the test.templates in DSCResources.
from dscresource.tests.
Awesome, thanks!
from dscresource.tests.
Thanks @KarolKaczmarek and @PlagueHO . That was a fast resolution!
from dscresource.tests.
Glad to help and good catch 😄
from dscresource.tests.
Fixed in PowerShell/DscResources#85
from dscresource.tests.
Related Issues (20)
- Nuget Spec Generated by AppVeyor invalid for PS Module Repository HOT 1
- Additional localization tests
- When opt-in to markdown links check, the cloned DscResource.Tests is also checked HOT 1
- Remove manual step in auto-documentation HOT 1
- Auto-documentation should document helper functions inside the Modules folder HOT 4
- Refactor DscResource.DocumentationHelper/PowerShellHelp.psm1/New-DscResourcePowerShellHelp
- New-DscResourcePowerShellHelp: Should output the help keyword .EXAMPLE in upper-case HOT 1
- Test-PublishMetadata: Exception Raised If the Example being tested has an invalid GUID
- Invoke-AppveyorAfterTestTask: Exception Calling New-DscResourcePowerShellHelp when Type is 'Wiki' HOT 2
- Wikik documentation should separate read-only parameters from the parameters table
- Wiki documentation should create code quotes for variables in parameter descriptions
- New-DscResourcePowerShellHelp: Generates white space on blank rows in the .DESCRIPTION section
- New-DscResourcePowerShellHelp: Files are generated as UTF-8 with BOM
- The custom rules should be listed and reference the style guideline rule it belongs to HOT 1
- Code formatting: newlines before and after if statement block HOT 1
- Add Tests to Ensure DSC Resource Names are added to DSCResourcesToExport in Manifest
- Generation of Wikipages throws an error HOT 3
- New-DscResourceWikiSite: Array DataTypes Have Changed Format HOT 3
- Get-MofSchemaObject: Credential Attribute Output DataType has Changed
- Common Tests - File Formatting: References missing cmdlets HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dscresource.tests.