Add support for pester tags (#57918)
* correct argument name * added documentation * adding missing version_added to doc * correcting description in docs * change type to list * add tests * correct test file
This commit is contained in:
parent
48a518d9a3
commit
db5656cf6e
4 changed files with 53 additions and 4 deletions
|
@ -14,6 +14,7 @@ $diff_mode = Get-AnsibleParam -obj $params -name "_ansible_diff" -type "bool" -d
|
||||||
# Modules parameters
|
# Modules parameters
|
||||||
|
|
||||||
$path = Get-AnsibleParam -obj $params -name "path" -type "str" -failifempty $true
|
$path = Get-AnsibleParam -obj $params -name "path" -type "str" -failifempty $true
|
||||||
|
$tags = Get-AnsibleParam -obj $params -name "tags" -type "list"
|
||||||
$minimum_version = Get-AnsibleParam -obj $params -name "minimum_version" -type "str" -failifempty $false
|
$minimum_version = Get-AnsibleParam -obj $params -name "minimum_version" -type "str" -failifempty $false
|
||||||
|
|
||||||
$result = @{
|
$result = @{
|
||||||
|
@ -72,6 +73,9 @@ If ($result.pester_version -ge "4.0.0") {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($tags.count){
|
||||||
|
$Parameters.Tag = $tags
|
||||||
|
}
|
||||||
# Run Pester tests
|
# Run Pester tests
|
||||||
If (Test-Path -LiteralPath $path -PathType Leaf) {
|
If (Test-Path -LiteralPath $path -PathType Leaf) {
|
||||||
if ($check_mode) {
|
if ($check_mode) {
|
||||||
|
|
|
@ -26,6 +26,12 @@ options:
|
||||||
- If the path is a folder, the module will consider all ps1 files as Pester tests.
|
- If the path is a folder, the module will consider all ps1 files as Pester tests.
|
||||||
type: str
|
type: str
|
||||||
required: true
|
required: true
|
||||||
|
tags:
|
||||||
|
description:
|
||||||
|
- Runs only tests in Describe blocks with specified Tags values.
|
||||||
|
- Accepts multiple comma seperated tags.
|
||||||
|
type: list
|
||||||
|
version_added: '2.9'
|
||||||
version:
|
version:
|
||||||
description:
|
description:
|
||||||
- Minimum version of the pester module that has to be available on the remote host.
|
- Minimum version of the pester module that has to be available on the remote host.
|
||||||
|
@ -47,6 +53,11 @@ EXAMPLES = r'''
|
||||||
win_pester:
|
win_pester:
|
||||||
path: C:\Pester
|
path: C:\Pester
|
||||||
|
|
||||||
|
- name: Run the pester tests only for the tags specified.
|
||||||
|
win_pester:
|
||||||
|
path: C:\Pester\TestScript.tests
|
||||||
|
tags: CI,UnitTests
|
||||||
|
|
||||||
# Run pesters tests files that are present in the specified folder
|
# Run pesters tests files that are present in the specified folder
|
||||||
# ensure that the pester module version available is greater or equal to the version parameter.
|
# ensure that the pester module version available is greater or equal to the version parameter.
|
||||||
- name: Run the pester test present in a folder and check the Pester module version.
|
- name: Run the pester test present in a folder and check the Pester module version.
|
||||||
|
|
11
test/integration/targets/win_pester/files/test03.test.ps1
Normal file
11
test/integration/targets/win_pester/files/test03.test.ps1
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
Describe -Name 'Test03 without tag' {
|
||||||
|
It -name 'Third Test without tag' {
|
||||||
|
{Get-Service} | Should Not Throw
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Describe -Name 'Test03 with tag' -Tag tag1 {
|
||||||
|
It -name 'Third Test with tag' {
|
||||||
|
{Get-Service} | Should Not Throw
|
||||||
|
}
|
||||||
|
}
|
|
@ -53,9 +53,9 @@
|
||||||
that:
|
that:
|
||||||
- dir_with_ending_slash.changed
|
- dir_with_ending_slash.changed
|
||||||
- not dir_with_ending_slash.failed
|
- not dir_with_ending_slash.failed
|
||||||
- dir_with_ending_slash.output.TotalCount == 2
|
- dir_with_ending_slash.output.TotalCount == 4
|
||||||
|
|
||||||
- name: Run Pester test(s) located in a folder. Folder path does not end with '\'
|
- name: Run Pester test(s) located in a folder. Folder path does not end with '\'
|
||||||
win_pester:
|
win_pester:
|
||||||
path: '{{test_win_pester_path}}'
|
path: '{{test_win_pester_path}}'
|
||||||
register: dir_without_ending_slash
|
register: dir_without_ending_slash
|
||||||
|
@ -65,7 +65,7 @@
|
||||||
that:
|
that:
|
||||||
- dir_without_ending_slash.changed
|
- dir_without_ending_slash.changed
|
||||||
- not dir_without_ending_slash.failed
|
- not dir_without_ending_slash.failed
|
||||||
- dir_without_ending_slash.output.TotalCount == 2
|
- dir_without_ending_slash.output.TotalCount == 4
|
||||||
|
|
||||||
- name: Run Pester test(s) located in a folder and with a minimum mandatory Pester version
|
- name: Run Pester test(s) located in a folder and with a minimum mandatory Pester version
|
||||||
win_pester:
|
win_pester:
|
||||||
|
@ -78,4 +78,27 @@
|
||||||
that:
|
that:
|
||||||
- dir_with_version.changed
|
- dir_with_version.changed
|
||||||
- not dir_with_version.failed
|
- not dir_with_version.failed
|
||||||
- dir_with_version.output.TotalCount == 2
|
- dir_with_version.output.TotalCount == 4
|
||||||
|
|
||||||
|
- name: Run Pester test(s) specifying a test file without specifying tag
|
||||||
|
win_pester:
|
||||||
|
path: '{{test_win_pester_path}}\test03.test.ps1'
|
||||||
|
register: test_no_tag
|
||||||
|
|
||||||
|
- name: assert Run Pester test(s) specifying a test file and all tests executed
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- test_no_tag.changed
|
||||||
|
- test_no_tag.output.TotalCount == 2
|
||||||
|
|
||||||
|
- name: Run Pester test(s) specifying a test file with tag
|
||||||
|
win_pester:
|
||||||
|
path: '{{test_win_pester_path}}\test03.test.ps1'
|
||||||
|
tags: tag1
|
||||||
|
register: test_with_tag
|
||||||
|
|
||||||
|
- name: Run Pester test(s) specifying a test file and only test with sepecified tag executed
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- test_with_tag.changed
|
||||||
|
- test_with_tag.output.TotalCount == 1
|
||||||
|
|
Loading…
Reference in a new issue