Replies: 1 comment
-
Hi Jeremy and Team, Great question! It’s awesome to see the team moving toward more automated testing for the Daffodil-VSCode extension! I wanted to share some thoughts that might help. My Experience vscode-extension-tester WebDriverIO VSCode Extension Testing Service My Recommendations: Tips from my Experience! Thanks for starting this discussion! |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Description
Much of the integration/end-to-end (e2e) GUI testing for Daffodil-VSCode is done manually as described in https://github.com/apache/daffodil-vscode/tree/main/src/tests. Having an automated testing suite for GUI integration/e2e tests would greatly enhance the efforts' testing capabilities and opens up bandwidth for developers significantly.
Currently, we're utilizing
@vscode/test-electron
for some of our automated tests, but they don't test the GUI in an extensive manner that resembles our manual tests. Additionally,@vscode/test-electron
seems to provide limited testing capabilities and a total lack of support for testing webviews.GUI Testing Frameworks
There seems to be two frameworks for testing GUI-aspects of Visual Studio Code extensions
vscode-extension-tester utilizes Selenium WebDriver where WebDriver.io VSCode Extension Testing Service uses WebdriverIO. It should be noted that WebDriver.io VSCode Extension Testing Service service was inspired by vscode-extension-tester.
Web Driver Differences
Resources that describe the differences between WebDriverIO and Selenium are listed below
Summary: WebDriver.io seems to be more modern, developer-friendly. Java-script focused. Flexible. More abstracted, and gets tests up and running more quicker. Selenium has been around longer, is more established.
Examples
vscode-extension-tester example
https://github.com/redhat-developer/vscode-extension-tester-example
Ran through examples on my own end and got it to work.
WebDriver.IO VSCode Example
Note: Unable to produce an example. Running through
npm create wdio@latest ./
, using the following optionsAttempted looking on StackOverflow for solutions, implemented some, but to no avail.
My Thoughts
The docs for vscode-extension-tester is more extensive and intuitive to follow upon first glance compared to WebDriverIO's.
I believe it would be worthwhile to look into how integrating each of these two VSCode e2e testing frameworks goes. Simple tasks like can we load the extension in and do something like
CTRL
+Shift
+P
>Daffodil...
Discussion
Does anyone have a preference for one of the GUI Testing Frameworks? Any thoughts? Relevant information?
Beta Was this translation helpful? Give feedback.
All reactions