2.0 has been released.
hestenet β credited aangel β .
hestenet β credited aangel β .
jdleonard β credited aangel β .
jdleonard β credited aangel β .
aangel β created an issue.
Thanks for the report. I made the change and merged it.
aangel β made their first commit to this issueβs fork.
teknorah β credited aangel β .
β’ simpletest is everywhere, reverting change.
- Actions was deprecated then removed in D11; use announcements_feed module as example instead.
- simpletest has been replaced by phpunit; change name of folder to reflect that.
teknorah β credited aangel β .
teknorah β credited aangel β .
teknorah β credited aangel β .
teknorah β credited aangel β .
jdleonard β credited aangel β .
This was performed with the ATK Recipe:
https://www.drupal.org/project/automated_testing_kit_demo_recipe β
Closing.
hestenet β credited aangel β .
hestenet β credited aangel β .
hestenet β credited aangel β .
hestenet β credited aangel β .
Targeting 1.4.
This was released last year. Closing.
These tests are in 1.3. Closing.
For my composer-based install, I think in my situation there was something lingering (a block from admin_toolbar_tools? see the backtrace below) that referenced the update.links.action.yml file because I did everything I could think of before the final step below. (I had restored the Upgrade Manager module thinking that would help but it turned out to make things worse.)
In any case, I:
- removed the update module entry by editing the config table
- cleared every cache I could think of
- reviewed the menu_tree table
- reviewed router table
- reviewed the plugin definitions
- applied both patch #4 and #6 from Compatibility issue: Route update.theme_install does not exist in Drupal 11.0.x & 10.4.x
- and likely other things I'm not remembering.
It wasn't until I completely erased the contents of update.links.action.yml that that I could pull up /admin/modulesβeven though the module was uninstalled (but present on the filesystem).
Perhaps this will help someone who painted themselves into the same corner I did.
Below is the backtrace from the failure in RouteProvider.php ("Route "update.module_install" does not exist."):
#0 /code/web/core/lib/Drupal/Core/Menu/LocalActionDefault.php(87): Drupal\Core\Routing\RouteProvider->getRouteByName('update.module_i...')
#1 /code/web/core/lib/Drupal/Core/Menu/LocalActionManager.php(192): Drupal\Core\Menu\LocalActionDefault->getRouteParameters(Object(Drupal\Core\Routing\CurrentRouteMatch))
#2 /code/web/core/lib/Drupal/Core/Menu/Plugin/Block/LocalActionsBlock.php(81): Drupal\Core\Menu\LocalActionManager->getActionsForRoute('system.modules_...')
#3 /code/web/core/modules/block/src/BlockViewBuilder.php(171): Drupal\Core\Menu\Plugin\Block\LocalActionsBlock->build()
#4 [internal function]: Drupal\block\BlockViewBuilder::preRender(Array)
#5 /code/web/core/lib/Drupal/Core/Security/DoTrustedCallbackTrait.php(113): call_user_func_array('Drupal\\block\\Bl...', Array)
#6 /code/web/core/lib/Drupal/Core/Render/Renderer.php(870): Drupal\Core\Render\Renderer->doTrustedCallback('Drupal\\block\\Bl...', Array, 'Render #pre_ren...', 'exception', 'Drupal\\Core\\Ren...')
#7 /code/web/core/lib/Drupal/Core/Render/Renderer.php(432): Drupal\Core\Render\Renderer->doCallback('#pre_render', 'Drupal\\block\\Bl...', Array)
#8 /code/web/core/lib/Drupal/Core/Render/Renderer.php(504): Drupal\Core\Render\Renderer->doRender(Array)
#9 /code/web/core/lib/Drupal/Core/Render/Renderer.php(248): Drupal\Core\Render\Renderer->doRender(Array, false)
#10 /code/web/core/lib/Drupal/Core/Template/TwigExtension.php(484): Drupal\Core\Render\Renderer->render(Array)
#11 /files/php/twig/678ecf147c807_page.html.twig_CiIyKlwi1CiiVfhMLJjmz4BX0/98gFkY9cIZo0bQJ1_QGhaX98smPe7gsMtSAC39cdu-Y.php(90): Drupal\Core\Template\TwigExtension->escapeFilter(Object(Drupal\Core\Template\TwigEnvironment), Array, 'html', NULL, true)
#12 /code/vendor/twig/twig/src/Template.php(387): __TwigTemplate_0e19dbed70a1ef5fd668bdace6bdbdce->doDisplay(Array, Array)
#13 /code/vendor/twig/twig/src/Template.php(343): Twig\Template->yield(Array, Array)
#14 /code/vendor/twig/twig/src/Template.php(358): Twig\Template->display(Array)
#15 /code/vendor/twig/twig/src/TemplateWrapper.php(35): Twig\Template->render(Array)
#16 /code/web/core/themes/engines/twig/twig.engine(33): Twig\TemplateWrapper->render(Array)
#17 /code/web/core/lib/Drupal/Core/Theme/ThemeManager.php(348): twig_render_template('core/themes/cla...', Array)
#18 /code/web/core/lib/Drupal/Core/Render/Renderer.php(491): Drupal\Core\Theme\ThemeManager->render('page', Array)
#19 /code/web/core/lib/Drupal/Core/Render/Renderer.php(248): Drupal\Core\Render\Renderer->doRender(Array, false)
#20 /code/web/core/lib/Drupal/Core/Template/TwigExtension.php(484): Drupal\Core\Render\Renderer->render(Array)
#21 /files/php/twig/678ecf147c807_html.html.twig_5PuhOBihR5J2SomMX1OHMMKUe/aFbEDfVcpSz7WS-gVUQnxHFhmcE3cKm5zGMfYZWptOI.php(91): Drupal\Core\Template\TwigExtension->escapeFilter(Object(Drupal\Core\Template\TwigEnvironment), Array, 'html', NULL, true)
#22 /code/vendor/twig/twig/src/Template.php(387): __TwigTemplate_28dda737252b4ec9e62e7e0f81eef67e->doDisplay(Array, Array)
#23 /code/vendor/twig/twig/src/Template.php(343): Twig\Template->yield(Array, Array)
#24 /code/vendor/twig/twig/src/Template.php(358): Twig\Template->display(Array)
#25 /code/vendor/twig/twig/src/TemplateWrapper.php(35): Twig\Template->render(Array)
#26 /code/web/core/themes/engines/twig/twig.engine(33): Twig\TemplateWrapper->render(Array)
#27 /code/web/core/lib/Drupal/Core/Theme/ThemeManager.php(348): twig_render_template('core/themes/cla...', Array)
<snip>
For my composer-based install, I think in my situation there was something lingering (a block from admin_toolbar_tools? see the backtrace below) that referenced the update.links.action.yml file because I did everything I could think of before the final step below.
I:
- removed the update module entry by editing the config table
- cleared every cache I could think of
- reviewed the menu_tree table
- reviewed router table
- reviewed the plugin definitions
- applied both patch #4 and #6 from Compatibility issue: Route update.theme_install does not exist in Drupal 11.0.x & 10.4.x π Individual admin pages no longer accessible after update to 10.4 Active
- and likely other things I'm not remembering.
It wasn't until I completely erased the contents of update.links.action.yml that that I could pull up /admin/modulesβeven though the module was uninstalled.
Below is the backtrace:
#0 /code/web/core/lib/Drupal/Core/Menu/LocalActionDefault.php(87): Drupal\Core\Routing\RouteProvider->getRouteByName('update.module_i...') #1 /code/web/core/lib/Drupal/Core/Menu/LocalActionManager.php(192): Drupal\Core\Menu\LocalActionDefault->getRouteParameters(Object(Drupal\Core\Routing\CurrentRouteMatch)) #2 /code/web/core/lib/Drupal/Core/Menu/Plugin/Block/LocalActionsBlock.php(81): Drupal\Core\Menu\LocalActionManager->getActionsForRoute('system.modules_...') #3 /code/web/core/modules/block/src/BlockViewBuilder.php(171): Drupal\Core\Menu\Plugin\Block\LocalActionsBlock->build() #4 [internal function]: Drupal\block\BlockViewBuilder::preRender(Array) #5 /code/web/core/lib/Drupal/Core/Security/DoTrustedCallbackTrait.php(113): call_user_func_array('Drupal\\block\\Bl...', Array) #6 /code/web/core/lib/Drupal/Core/Render/Renderer.php(870): Drupal\Core\Render\Renderer->doTrustedCallback('Drupal\\block\\Bl...', Array, 'Render #pre_ren...', 'exception', 'Drupal\\Core\\Ren...') #7 /code/web/core/lib/Drupal/Core/Render/Renderer.php(432): Drupal\Core\Render\Renderer->doCallback('#pre_render', 'Drupal\\block\\Bl...', Array) #8 /code/web/core/lib/Drupal/Core/Render/Renderer.php(504): Drupal\Core\Render\Renderer->doRender(Array) #9 /code/web/core/lib/Drupal/Core/Render/Renderer.php(248): Drupal\Core\Render\Renderer->doRender(Array, false) #10 /code/web/core/lib/Drupal/Core/Template/TwigExtension.php(484): Drupal\Core\Render\Renderer->render(Array) #11 /files/php/twig/678ecf147c807_page.html.twig_CiIyKlwi1CiiVfhMLJjmz4BX0/98gFkY9cIZo0bQJ1_QGhaX98smPe7gsMtSAC39cdu-Y.php(90): Drupal\Core\Template\TwigExtension->escapeFilter(Object(Drupal\Core\Template\TwigEnvironment), Array, 'html', NULL, true) #12 /code/vendor/twig/twig/src/Template.php(387): __TwigTemplate_0e19dbed70a1ef5fd668bdace6bdbdce->doDisplay(Array, Array) #13 /code/vendor/twig/twig/src/Template.php(343): Twig\Template->yield(Array, Array) #14 /code/vendor/twig/twig/src/Template.php(358): Twig\Template->display(Array) #15 /code/vendor/twig/twig/src/TemplateWrapper.php(35): Twig\Template->render(Array) #16 /code/web/core/themes/engines/twig/twig.engine(33): Twig\TemplateWrapper->render(Array) #17 /code/web/core/lib/Drupal/Core/Theme/ThemeManager.php(348): twig_render_template('core/themes/cla...', Array) #18 /code/web/core/lib/Drupal/Core/Render/Renderer.php(491): Drupal\Core\Theme\ThemeManager->render('page', Array) #19 /code/web/core/lib/Drupal/Core/Render/Renderer.php(248): Drupal\Core\Render\Renderer->doRender(Array, false) #20 /code/web/core/lib/Drupal/Core/Template/TwigExtension.php(484): Drupal\Core\Render\Renderer->render(Array) #21 /files/php/twig/678ecf147c807_html.html.twig_5PuhOBihR5J2SomMX1OHMMKUe/aFbEDfVcpSz7WS-gVUQnxHFhmcE3cKm5zGMfYZWptOI.php(91): Drupal\Core\Template\TwigExtension->escapeFilter(Object(Drupal\Core\Template\TwigEnvironment), Array, 'html', NULL, true) #22 /code/vendor/twig/twig/src/Template.php(387): __TwigTemplate_28dda737252b4ec9e62e7e0f81eef67e->doDisplay(Array, Array) #23 /code/vendor/twig/twig/src/Template.php(343): Twig\Template->yield(Array, Array) #24 /code/vendor/twig/twig/src/Template.php(358): Twig\Template->display(Array) #25 /code/vendor/twig/twig/src/TemplateWrapper.php(35): Twig\Template->render(Array) #26 /code/web/core/themes/engines/twig/twig.engine(33): Twig\TemplateWrapper->render(Array) #27 /code/web/core/lib/Drupal/Core/Theme/ThemeManager.php(348): twig_render_template('core/themes/cla...', Array) #28 /code/web/core/lib/Drupal/Core/Render/Renderer.php(491): Drupal\Core\Theme\ThemeManager->render('html', Array) #29 /code/web/core/lib/Drupal/Core/Render/Renderer.php(248): Drupal\Core\Render\Renderer->doRender(Array, false) #30 /code/web/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php(158): Drupal\Core\Render\Renderer->render(Array) <snip>
aangel β created an issue.
Additional email options are:
https://mailcatcher.me β Free tool that can be hosted anywhere on the net. Captures emails and provides a GUI to them.
https://mailtrap.io β Up to 100 inbox emails per month; paid plans offer more
https://testmail.app β Up to 100 inbox emails per month for free; paid plans offer more
https://yopmail.com β This might be exactly like how Ethereal.email worked
https://yopmail.com β An email forwarding service (I donβt quite understand what it does)
I just released 3.0.0-beta1. Closing this.
aangel β created an issue.
aangel β created an issue.
I should mention that I'm going to convert the current tests in ATK (almost two dozen right now) to work on Drupal CMS.
And at BADCamp, during the Starshot Summit (which was, as you can imagine, well-attended), Tim mentioned that there will be another chance to create Starshot initiatives. I floated the idea of one that creates even more E2E tests than I'll be able to make on my own with my team. The opportunity to create more initiative somes up at the end of November.
But I'm certain I want to do all that in Playwright and will advocate for using it if this does become an initiative. Playwright is very fun to work with. :-)
@wim my pleasure.
The speed difference is due to a few things.
First, the Cypress test runner operates in the browser and typically browsers run JS much slower than, say, node on the OS level. Playwright runs on the OS level then communicates with the browser to issue commands (via CDP or WebKit Protocol).
Be aware that there are some advantages to having the test runner operate within the browserβone has complete access to the code being tested (especially useful for testing front-end JS code). Unfortunately, this complete access comes at the cost of execution time.
Second, Cypress has to re-start the browser for every test.
Third, the method Playwright uses to auto-wait for elements to appear is more efficient than the one Cypress uses.
There might be other reasons but these seem to be the biggest ones.
I'm working on getting a demo of Automated Testing Kit onto DrupalForge.org and SimplyTest. me; hopefully I can post a link
"soon."
BTW, it's not an outlier that tests run 75% faster on Playwrightβit's common.
Here is the team that switched:
How We Reduced Testing Time By 70% β by Moving From Cypress to Playwright
Lisa Weilguni, Oct. 2023β¨
https://medium.com/lingvano/how-we-reduced-testing-time-by-70-by-moving-...
Cypress vs Playwright: 70% Faster Automationβ¨The Test Automation Experience, Jan. 2024β¨
https://youtu.be/n6UYHeZBMiY
Their timing improvement:
ββββββββββββββββββββββββββ¬βββββββββββ¬βββββββββββββ¬βββββββββββββ
β Task β Cypress β Playwright β Difference β
ββββββββββββββββββββββββββΌβββββββββββΌβββββββββββββΌβββββββββββββ€
β Run tests locally β 1min 27s β 25s β -72% β
β Run tests on GitHub CI β 6min 38s β 3min 43s β -44% β
ββββββββββββββββββββββββββ΄βββββββββββ΄βββββββββββββ΄βββββββββββββ