All Projects → pantheon-systems → Pantheon Wordpress Upstream Tests

pantheon-systems / Pantheon Wordpress Upstream Tests

Licence: mit
Tests behavior of WordPress Core upstreams for Pantheon. Also within test suites of contrib plugins

Labels

Projects that are alternatives of or similar to Pantheon Wordpress Upstream Tests

gavel-spec
Behavior specification for Gavel, validator of HTTP transactions
Stars: ✭ 105 (+775%)
Mutual labels:  gherkin
Trema
Full-Stack OpenFlow Framework in Ruby
Stars: ✭ 267 (+2125%)
Mutual labels:  gherkin
Karate
Test Automation Made Simple
Stars: ✭ 5,497 (+45708.33%)
Mutual labels:  gherkin
cucumber-react
React components for Cucumber
Stars: ✭ 15 (+25%)
Mutual labels:  gherkin
bat
Gherkin based DSL for testing HTTP APIs via Cucumber.JS
Stars: ✭ 30 (+150%)
Mutual labels:  gherkin
Middleman Blog
Middleman : Blog Engine Extension
Stars: ✭ 317 (+2541.67%)
Mutual labels:  gherkin
kheera-testrunner-android
BDD Framework for Android
Stars: ✭ 18 (+50%)
Mutual labels:  gherkin
Cuke linter
A linting tool for Cucumber
Stars: ✭ 24 (+100%)
Mutual labels:  gherkin
behave-restful
BDD Framework to Test REST Services and APIs
Stars: ✭ 47 (+291.67%)
Mutual labels:  gherkin
Contexts
Behat extension with most custom helper steps
Stars: ✭ 387 (+3125%)
Mutual labels:  gherkin
sonar-gherkin-plugin
SonarQube Cucumber Gherkin Analyzer
Stars: ✭ 33 (+175%)
Mutual labels:  gherkin
flutter gherkin
A Gherkin parsers and runner for Dart and Flutter which is very similar to cucumber
Stars: ✭ 160 (+1233.33%)
Mutual labels:  gherkin
Behat
BDD in PHP
Stars: ✭ 3,696 (+30700%)
Mutual labels:  gherkin
CucumberSwift
A lightweight swift Cucumber implementation
Stars: ✭ 40 (+233.33%)
Mutual labels:  gherkin
Opencypher
Specification of the Cypher property graph query language
Stars: ✭ 534 (+4350%)
Mutual labels:  gherkin
karate-runner
VSCode Extension for Karate
Stars: ✭ 23 (+91.67%)
Mutual labels:  gherkin
Jekyll Responsive Image
An unopinionated Jekyll plugin for generating and using responsive images
Stars: ✭ 289 (+2308.33%)
Mutual labels:  gherkin
Crudecumber
A manual Cucumber runner RubyGem
Stars: ✭ 9 (-25%)
Mutual labels:  gherkin
Gherkin
Gherkin parser, written in PHP 5.3+ for Behat project
Stars: ✭ 924 (+7600%)
Mutual labels:  gherkin
Symfonyextension
🎼 Extension integrating Behat with Symfony.
Stars: ✭ 376 (+3033.33%)
Mutual labels:  gherkin

pantheon-wordpress-upstream

Runs a Behat-based test suite against a given branch of the Pantheon WordPress upstream on Pantheon infrastructure to ensure the branch is fully functional on Pantheon.

CircleCI

How It Works

The purpose of this repository is to ensure a given branch of the Pantheon WordPress Upstream is fully functional on Pantheon infrastructure. This is used as a part of Pantheon's automated WordPress updating process.

On a high level, here's how it works:

  1. A new CircleCI job is initiated through a cron job, or when a push is made against the WordPress upstream.
  2. The job environment defines three important environment variables:
  • TERMINUS_TOKEN - A machine token used for creating and deleting site environments on Pantheon. Because this token is meant to be kept secret, the value is set in the CircleCI admin, and not tracked in circle.yml.
  • TERMINUS_SITE - An existing Pantheon site to be used for running the test suite. This site must support multidev, and the TERMINUS_TOKEN must be able to create and delete environments for this site.
  • TERMINUS_ENV - A unique name for the multidev branch to be created, to prevent collisions between jobs.
  1. CircleCI installs Terminus, an interface for programmatically interacting with Pantheon.
  2. The test suite runs in three steps:
  3. prepare.sh - Prepares the Pantheon site environment to have the test suite run against it. Preparation includes:
    • Creating the site environment using Terminus.
  4. test.sh - Runs the Behat test suite against the created environment.
  5. cleanup.sh - Cleans up after the test suite has completed. Cleanup includes:
    • Deleting the site environment using Terminus.

And that's it!

Making Improvements

Need to improve this test runner in some way? You can clone the repository locally and run it against any Pantheon site.

WARNING! WARNING!

PLEASE READ THE FOLLOWING VERY CAREFULLY.

BY FORCE PUSHING AGAINST TERMINUS_ENV AND ERASING THE DATABASE, THIS TEST RUNNER IRREVOCABLY DAMAGES YOUR PANTHEON SITE. USE ONLY WITH A SINGLE-USE, "THROWAWAY" SITE. DO NOT USE WITH ANY PANTHEON SITE THAT CANNOT BE DELETED.

With the warning out of the way, here's how you can use the test runner locally.

First, make sure Terminus is installed and authenticated:

composer global require pantheon-systems/terminus
terminus auth login --machine-token=<secret-token>

Then, you can clone and use the test runner:

git clone [email protected]:pantheon-systems/pantheon-wordpress-upstream-tests.git
cd pantheon-wordpress-upstream-tests
export TERMINUS_SITE=wordpress-upstream
export TERMINUS_ENV=test-1
export WORDPRESS_ADMIN_USERNAME=pantheon
export WORDPRESS_ADMIN_PASSWORD="$(openssl rand -hex 8)"
./prepare.sh
./test.sh
./cleanup.sh

Feel free to open an issue with any questions you may have.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].