* Updated interoperability scenarios to use GA Release Candidate * Removed "with proxy" and updated incorrect reference to OS master. * Update to resolve Artifactory tools if available (blob-inspector, network-bootstrapper, database-migration) * Allow passing in of argument to specify one or more scenarios to run. * Updated to RC03. * Added Oracle support in Behave framework and included functional test scenarios. * behave test using snapshot (#970) * make behave use snapshots from artifactory * rebase and fix * address PR issues * address PR issues * gradle task for bdd (#989) * gradle task for bdd (#989) * fix typo * Publishing behave-api jar for use by external applications (eg. cordapp-option). Fixed SIMMM valuation behave scenario test and startup. * Publishing behave-api jar for use by external applications (eg. cordapp-option). Fixed SIMMM valuation behave scenario test and startup. * Various fixes to make BDD working in Teamcity (#1063) * fix typo * print docker log * print docker log * attempt to fix docker * attempt to fix docker * attempt to fix docker * update to RC04 * disable clean up * try to find out why the test pick up the wrong jar * test * minor fixes * fix wrong bootstrapping procedure * remove DISABLE_CLEANUP * attempt to fix error * fixes to get postgres working * enable cleanup * generate cucumber report * bump to RC06 * attempt to make cucumber generate http report * cucumber report * some minor cleanup * removed DP3 nodes from scenarios, added oracle and bumped to RC07 * fix licence issue * fixed bootstrapper placing corda jar * Update interoperability.feature * Added missing published artifact. * Fixed compilation errors raised by stricter compilation flag checking. * Minor changes following rebase from master and re-testing. * Updates to reflect last minute naming and versioning changes applied to 3.0 release. Updated scenarios to use the officially released version of CE 3.0 * Updates following lastest PR review feedback. * Updates following lastest PR review feedback. * Align with master (maxMessageSize = mazTransactionSize). * Fix snapshot version regex matching. * Set logging level to DEBUG to ensure pattern matches catch log message output which has been downgraded from INFO * Add all supported interoperable versions.
Introduction
This project illustrates how one can use Cucumber / BDD to drive and test homogeneous and heterogeneous Corda networks on a local machine. The framework has built-in support for Dockerised node dependencies so that you easily can spin up a Corda node locally that, for instance, uses a 3rd party database provider such as Postgres.
Structure
The project is split into three pieces:
-
Testing Library (main) - This library contains auxiliary functions that help in configuring and bootstrapping Corda networks on a local machine. The purpose of the library is to aid in black-box testing and automation.
-
Unit Tests (test) - These are various tests for the library described above. Note that there's only limited coverage for now.
-
BDD Framework (scenario) - This module shows how to use BDD-style frameworks to control the testing of Corda networks; more specifically, using Cucumber.
Setup
To get started, please follow the instructions below:
-
Go up to the root directory and build the capsule JAR.
$ cd ../../ $ ./gradlew install
-
Come back to this folder and run:
$ cd experimental/behave $ ./prepare.sh
This script will download necessary database drivers and set up the dependencies directory with copies of the Corda fat-JAR and the network bootstrapping tool.
Selective Runs
If you only want to run tests of a specific tag, you can append the following parameter to the Gradle command:
$ ../../gradlew scenario -Ptags="@cash"
# or
$ ../../gradlew scenario -Ptags="@cash,@logging"
Environment variables and system properties
The following environment variables must be set to enable access to the internal R3 Artifactory repository hosting Enterprise distributions: https://ci-artifactory.corda.r3cev.com/artifactory/r3-corda-releases
CORDA_ARTIFACTORY_USERNAME
CORDA_ARTIFACTORY_PASSWORD
The following system properties may be passed to the Cucumber and ScenarioRunner run-time processes:
STAGING_ROOT
to specify the filesystem location of the Corda distributions to be used (as setup by the prepare.sh script)
e.g. -DSTAGING_ROOT=$HOME/staging
USE_NETWORK_SERVICES
specifies to use the Doorman/NMS service to perform setup of an Enterprise network. By default both OS and Enterprise scenarios will use the Network Bootstrapper utility to create a Corda network.
e.g. -DUSE_NETWORK_SERVICES
DISABLE_CLEANUP
to prevent clean-up of runtime directories after successfully running tests.
e.g. -DDISABLE_CLEANUP