corda/experimental/behave
josecoll b3a4e3907f
OS -> ENT Merge (#757)
* Better cert path validation exception message for PartyAndCertificate.verify (#2976)

* Corda Behave extensions for CTS (#2968)

* Updated to Corda 3.0, added support for PostgreSQL, added STAGING_ROOT environment variable, incorporating Watch improvements (Maks), Steps Provider interface for auto-scanning of 3rd party steps providers, re-implemented StepBlocks, new ScenarioRunner executable tool, additional Steps definitions (Vault, issue/transfer cash, cordapps), other minor bug fixes and logging improvements.

* Updates incorporating PR review feedback.

* Reverted back to original - will re-test in ENT.

* Removed all SQL Server code (to be included in ENT only)

* Minor updates following second PR review.

* Fixed broken scenario tests.

* Final fix for PostgreSQL scenario test.
2018-04-19 11:49:17 +01:00
..
deps OS -> ENT Merge (#757) 2018-04-19 11:49:17 +01:00
src OS -> ENT Merge (#757) 2018-04-19 11:49:17 +01:00
build.gradle OS -> ENT Merge (#757) 2018-04-19 11:49:17 +01:00
prepare.sh OS -> ENT Merge (#757) 2018-04-19 11:49:17 +01:00
README.md OS -> ENT Merge (#757) 2018-04-19 11:49:17 +01:00

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"