Coder Social home page Coder Social logo

richardfrankza / ddev-selenium-standalone-chrome Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ddev/ddev-selenium-standalone-chrome

0.0 0.0 0.0 139 KB

A DDEV service for running standalone Chrome

License: Apache License 2.0

Shell 100.00%

ddev-selenium-standalone-chrome's Introduction

tests project is maintained

DDEV Selenium Standalone Chrome

Introduction

This service can be used with any project type. The examples below are Drupal-specific. Contributions for docs and tests that show this service working with other project types are appreciated.

Install/Update

  1. ddev get ddev/ddev-selenium-standalone-chrome
  2. ddev restart
  3. Optional. Update the provided .ddev/config.selenium-standalone-chrome.yaml as you see fit(and remove the #ddev-generated line). You can also just override lines in your .ddev/config.yaml
  4. Optional. Check config.selenium-standalone-chrome.yaml and docker-compose.selenium-chrome.yaml into your source control.
  5. Update by re-running ddev get ddev/ddev-selenium-standalone-chrome.

Use

  • Your project is now ready to run FunctionalJavascript and Nightwatch tests from Drupal core, or Drupal Test Traits (DTT). All these types are tested in this repo. Some examples to try:
    • FunctionalJavascript:
      • Ensure you have the drupal/core-dev Composer package or equivalent.
      • ddev exec -d /var/www/html/web "../vendor/bin/phpunit -v -c ./core/phpunit.xml.dist ./core/modules/system/tests/src/FunctionalJavascript/FrameworkTest.php"
    • Nightwatch
      • ddev exec -d /var/www/html/web/core yarn install (do this once)
      • ddev exec -d /var/www/html/web/core touch .env (do this once)
      • ddev exec -d /var/www/html/web/core yarn test:nightwatch tests/Drupal/Nightwatch/Tests/exampleTest.js
    • Drupal Test Traits
      • Ensure you have a working site that has the weitzman/drupal-test-traits Composer package.
      • ddev exec -d /var/www/html/web "../vendor/bin/phpunit --bootstrap=../vendor/weitzman/drupal-test-traits/src/bootstrap-fast.php --printer '\Drupal\Tests\Listeners\HtmlOutputPrinter' ../vendor/weitzman/drupal-test-traits/tests/ExampleSelenium2DriverTest.php"

Watching the tests

The easy way: Use noVNC (built-in)

  1. Remove --headless from the MINK_DRIVER_ARGS_WEBDRIVER in your project's .ddev/config.selenium-standalone-chrome.yaml. Run ddev restart.
  2. On your host, browse to https://[DDEV SITE URL]:7900 (password: secret) to watch tests run with noVNC (neat!).

This enables you to quickly see what is going on with your tests.

Use a local VNC client (try noVNC first!)

If you are using something like behat and want to debug tests when they fail by manually navigating around your site in the Chromium browser included with this addon, you might want to use a VNC client installed on your machine, such as Screen Sharing on macOS (built-in) or TightVNC on Linux and Windows (must be downloaded and installed). This is because with noVNC, you are running a browser (Chromium) inside another browser (whatever browser you use on your local machine), which can be inconvenient-- for example, the keyboard shortcut to reload a page in Chromium will reload your local browser and kick you out of noVNC instead of reloading Chromium, and it may be hard to type a new url in the Chromium address bar due to how your local browser handles keyboard input.

In other words, if you just want to watch the tests, use noVNC.

If you want to use the browser provided by this addon to check out the test results by poking around your site, consider using a local VNC client. To do so, you need to open port 5900.

How to open port 5900 for VNC access

  1. Open .ddev/docker-compose.selenium-chrome.yaml.
  2. Uncomment the two lines about ports and 5900:5900.
  3. Execute ddev restart.

You can now connect to [DDEV SITE URL]:5900 (password: secret) in your VNC client.

Note that when using ports, only one project at a time can be running with port 5900.

Behat config example

If you use Behat as a test running, adjust your behat.yml

  extensions:
    Behat\MinkExtension:
      base_url: http://web
      selenium2:
        wd_host: http://selenium-chrome:4444/wd/hub
        capabilities:
          chrome:
            switches:
              - "--disable-gpu"
              - "--headless"
              - "--no-sandbox"
              - "--disable-dev-shm-usage"

Contribute

Maintainer

ddev-selenium-standalone-chrome's People

Contributors

gitressa avatar ptmkenny avatar rfay avatar star-szr avatar tyler36 avatar weitzman avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.