Skip to content

Add NUnit Test handling for PSScriptAnalyzer results #211

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

Merged
merged 13 commits into from
Jun 1, 2020

Conversation

HowardWolosky
Copy link
Contributor

@HowardWolosky HowardWolosky commented Jun 1, 2020

This will now convert the output of Invoke-ScriptAnalyzer into an NUnitXml file that can then be published through the CI system so that we can fail on ScriptAnalyzer failures, as well as easily
see them in the test output.

Got the initial idea for this approach from @MathieuBuisson's blog post (which directly converted the ScriptAnalyzer results into an NUnit XML file, but only had a single passing test for the success scenario). I then combined that idea with one from a Dr. Scripto post which used Pester to invoke PSScriptAnalyzer, ensuring that there was a test created for each possible Rule. The problem with the Dr. Scripto approach was that multiple failures of the same rule still resulted in a single failure, and the test output lost the actual message from ScriptAnalyzer.

I ended up implementing this differently than Mathieu, directly working with the XML class to build up the XML document, but really appreciated the initial ideas that he had with this approach.

Sample build test result when there was a Script Analysis failure: https://dev.azure.com/ms/PowerShellForGitHub/_build/results?buildId=84441&view=ms.vss-test-web.build-test-results-tab

This will now convert the output of `Invoke-ScriptAnalyzer` into
an NUnitXml file that can then be published through the CI system
so that we can fail on ScriptAnalyzer failures, as well as easily
see them in the test output.
@HowardWolosky HowardWolosky added tests A change related to the Pester tests for the module. build Changes related to the build infrastructure for the project. labels Jun 1, 2020
@HowardWolosky
Copy link
Contributor Author

/azp run PowerShellForGitHub-CI

@azure-pipelines
Copy link

Azure Pipelines failed to run 1 pipeline(s).

@HowardWolosky
Copy link
Contributor Author

/azp run PowerShellForGitHub-CI

@azure-pipelines
Copy link

Azure Pipelines failed to run 1 pipeline(s).

@HowardWolosky
Copy link
Contributor Author

/azp run PowerShellForGitHub-CI

@azure-pipelines
Copy link

Azure Pipelines failed to run 1 pipeline(s).

@HowardWolosky
Copy link
Contributor Author

/azp run PowerShellForGitHub-CI

@azure-pipelines
Copy link

Azure Pipelines failed to run 1 pipeline(s).

@HowardWolosky
Copy link
Contributor Author

/azp run PowerShellForGitHub-CI

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@HowardWolosky
Copy link
Contributor Author

/azp run PowerShellForGitHub-CI

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@HowardWolosky
Copy link
Contributor Author

/azp run PowerShellForGitHub-CI

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@HowardWolosky
Copy link
Contributor Author

/azp run PowerShellForGitHub-CI

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Changes related to the build infrastructure for the project. tests A change related to the Pester tests for the module.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant