-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
UI testing PoC with the Lombiq UI Testing Toolbox (Lombiq Technologies: OCORE-75) #11194
Conversation
…Studio.Threading.Analyzers mistakenly being applied
<ItemGroup> | ||
<PackageReference Include="Lombiq.Tests.UI.AppExtensions" /> | ||
<PackageReference Include="Lombiq.Tests.UI.Shortcuts" /> | ||
</ItemGroup> |
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.
Could we not build a separate csproj for tests, i.e. OracheCore.Cms.Web.UITests.csproj or something.... rather than adding in stuff to the main csproj for testing?
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.
We could, but it would be a complete copy of this one, and then we'd have to maintain two.
keepFileOpen="false" | ||
concurrentWrites="false" |
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.
This should be reverted once we have a better approach, see Lombiq/Open-Source-Orchard-Core-Extensions#264 (comment).
Please share your feedback on whether to continue this here: #12834 |
Thanks for your efforts @Piedone, I might review this while i'm interested into Software Testing along side with Localization ;) FYI I spent last few weeks working and investigating Playwright it quite interested, I'm not sure if there's a plan to use it over Selenium or I might create a package to make use of it in OCC |
Thank you! Using Playwright instead of Selenium would be a fundamental change, so we don't have plans for it. |
I know it's funddamental, but the good things about playwright that we can write tests for both client and server-side with the same tetchnology same APIs, which is quite cool instead of using Cypress and selenium or any other technology For that I might start my library as a part of OCC, probably we can have some interest or collaborations to improve the testing in Orchard Core Thanks again |
# Conflicts: # src/docs/resources/libraries/README.md
Last call: Please let me know under the #12834 issue if you think this is worth continuing working on. If not, I'll close the issue and PR. |
We can revisit this later if there's any interest. Related: #14840 |
A proof of concept to add UI testing to Orchard with the Lombiq UI Testing Toolbox. For now, only a rundown of basic smoke tests are run, see this demo video.
Fixes #12834.
Remaining tasks, after the demo at the Orchard meeting:
TestBasicOrchardFeaturesExceptRegistrationAsync
would potentially need to be copied to be serious here, since if something changes in Orchard deliberately, it can fail.TestBasicOrchardFeaturesExceptRegistrationAsync
with all recipes and similar to the Cypress tests do some basic checks on the frontend for all themes (can use DotNest tests).setPageSize
needed there (it seems like a smoke test, changes the page size under site settings)? Doesn't seem so.OrchardCore.Mvc.Web
. This can be something simple that runs the app without anyLombiq.Tests.UI.AppExtensions
integration.functional_all_db.yml
).functional_all_db.yml
). This can work without having specific Postgres support in the UI Testing Toolbox, just we won't be able to use snapshots and setup operations. The engine to use (i.e. SQL Server, Postgres...) can come from an environment variable, so we can run the whole test suite for each engine.ExecuteTestAfterSetupAsync
then should throwNotSupportedException
andSetupHelpers
needs to be deleted. Document this in the UI Testing Toolbox too. Use service containers as currently (only Linux) or an action to setup Postgres? Postgresmes preinstalled both under Linux and Windows, and this simple action can start it.functional_all_db.yml
). Same as Postgres. Use service containers as currently (only Linux) oractions-setup-mysql
orsetup-mysql
?os: [ubuntu-latest, windows-latest]
.[Theory(Skip = "Minimal test suite for multi-DB testing."),
with[Theory,
.IntentionallyFailingTest
.docs\resources\libraries\README.md
. Then perhapsConnectionStringTemplate
needn't be custom inUITestBase
and that can be the default?preview_ci
(less ideal than having feedback under each PR, but better than randomly running it only manually: issues will be visible relatively soon, without anybody waiting),release_ci
, and manually. Refactor workflow DRY-ing with theui-tests
action. Pin Lombiq/GitHub-Actions* actions to an SHA.@issue/
references from workflows.