-
Notifications
You must be signed in to change notification settings - Fork 234
Replace Pester tests with xunit tests #1008
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
Replace Pester tests with xunit tests #1008
Conversation
Now the tests don't use a REPL which is probably ideal for our testing environment |
test/PowerShellEditorServices.Test.E2E/LanguageServerProtocolMessageTests.cs
Outdated
Show resolved
Hide resolved
PowerShellVersionDetails details | ||
= await LanguageClient.SendRequest<PowerShellVersionDetails>("powerShell/getVersion", new GetVersionParams()); | ||
|
||
if(Environment.GetEnvironmentVariable("PWSH_EXE_NAME") == "powershell") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Worth making this a static?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
}); | ||
} | ||
|
||
[Fact(Skip = "Bug in Newtonsoft that csharp-language-server-protocol will workaround")] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Possible to explain what the issue is and/or link to the issue here in a comment?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
They've fixed the issue :) and the tests are passing now!
Co-Authored-By: Robert Holt <rjmholt@gmail.com>
* Add starting point * x * More work * Make integration tests pass for omnisharp * Changes * add dummy workspace symbols handler * use LoggerFactory * A working WorkspaceSymbolsHandler * working text document syncer * needed document selector and getVersion handler to work with vscode * Added Diagnostics * didChangeConfiguration message and general settings support * Add diagnostics (#18) * initial folding support * added test for folding * Add setting support (#19) * Added Diagnostics * didChangeConfiguration message and general settings support * Apply suggestions from code review Co-Authored-By: Robert Holt <rjmholt@gmail.com> * Folding support (#20) * Added Diagnostics * didChangeConfiguration message and general settings support * initial folding support * log level trace * folding works with latest omnisharp version * comment typo * added test for folding * formatting support * remove merge conflict * add formatting tests * DocumentSymbols and References support (#997) * working formatting * add tests * delete commented out code * [Omnisharp-LSP] textDocument/documentHighlight support (#999) * Add handler scaffold * More stuff * Make handler work * Add copyright * Add tests, fix bugs * Fix small issues * codelens support (#1001) * codelens support * address rob's feedback * powerShell/getPSHostProcesses and powerShell/getRunspace (#1002) * Test only pester for now (#1003) * Implement textDocument/codeAction (#1004) * Add initial handler * Add working codeAction implementation * Crash * Make tests work * Fix issues * Make tests work in WinPS * Add powershellcontext (#1005) * Add powershellcontext * using file sink now instead * all the newlines * support $psEditor (#1006) * support $psEditor * deleted commented out code * fix initial build failures due to lack of certain assemblies * use different RootPath * wait an extra 5 seconds just in case * refactor initialize script * Re-add Stdio option and replace Pester tests with xunit tests. (#1008) * Completion Support (#1007) * completion support * misc codacy fixes * use BUILD_ARTIFACTSTAGINGDIRECTORY so logs can be uploaded * publish artifacts even if build fails * handle log messages * give PSES a chance to run what it needs to run * switch to using xUnit output helper * treat DynamicKeywords as Keyword * completionresolve support (#1009) * handle log messages * switch to using xUnit output helper * Add completionItem/resolve request * feedback * update build to run update-help for signature help test * removing scope hoping it works in CI * setting to EA silentlycontinue * change to language=powershell * hover support (#1010) * handle log messages * switch to using xUnit output helper * add hover handler * move to language=powershell * refactoring for feedback * codacy * Omni signaturehelp (#1011) * handle log messages * switch to using xUnit output helper * Support SignatureHelp * concurrentdict * Add definition handler (#1013) * add definition handler * codacy * sneak in powerShell/executionStatusChanged * codacy * Add Plaster messages (#1014) * Comment Help and Evaluate (#1015) * Support for Comment Help generator * add evaluate handler * Last LSP messages (#1016) * support CommandExporer commands and powerShell/runspaceChanged * expand alias * refactor server setup (#1018) * rename namespaces (#1019) * The entire Debug Adapter moved over... (#1043) * initial non-working dap * working launch but not attach * working attach handler * update namespaces * Disconnect support and handling of JsonRpcServer teardown * Add foundation for debug tests - stdio and fixures * all handlers * remote file manager working * rest of debug adapter * use actual release * Apply suggestions from code review Co-Authored-By: Robert Holt <rjmholt@gmail.com> * Delete projects we wont be keeping around and get pses.vscode working again (#1046) * delete other folders and tweak build script for BuildInfo * working PowerShellEditorServices.VSCode now a binary module! * some typo * Apply suggestions from code review Co-Authored-By: Patrick Meinecke <SeeminglyScience@users.noreply.github.com> * address additional comments * don't checkin maml * add error handling * deleted buildinfo and address rob's comments * Remove engine from files and namespaces (#1048) * apply apt state for PS7 (#1051) * delete buildinfo * implement powerShell/startDebugger (#1049) * implement powerShell/startDebugger * add line Co-Authored-By: Patrick Meinecke <SeeminglyScience@users.noreply.github.com> * Enable alias corrections (#1053) * Codacy comments
This replaces the Pester E2E tests with xunit E2E tests and uses all Omnisharp types (no reliance on PSES.Protocol!)
The biggest problem I had with the Pester tests was that it was so hard to debug them... and the programming model relied too much on timing things perfectly.
I've moved over to xUnit tests as the asynchronous nature of communicating with PSES proved to be really tough with PowerShell.
I think this new model is a little more stable and uses Omnisharp's client so the types are consistant with no reliance on our protocol project.
The tests do exactly what the Pester tests do, just using xunit instead.
This switches to starting PSES via
Stdio
testing that code path... It might be worthwhile to have aNamedPipe
smoke test (that just connects and disconnects)... but that's out of scope for now.Also, that might have to use Pester because I was experiencing some hanging on Windows getting the NamedPipes working with xUnit.