Cubano is a "ready-made" test framework that provides everything at your fingertips. It's ideal for software delivery teams who want to collaborate around living documentation.
Utilising Specification by Example techniques, the framework implements:
Cubano supplies User Documentation, and a Demo Project, to help users get started.
It encourages collaboration and communication between business people, testers and developers. The rich output presents multiple views of the specification with embedded storyboards and logs containing screenshots, HTML page source, message interactions and text.
The framework is easy to configure, for example supported browsers are simple to install locally using the Managed WebDriver, or in the cloud using SauceLabs or BrowserStack. It supports standard patterns for Page Objects and Components to provide the right level of abstraction for web pages.
It is built in Java using Concordion and incorporates numerous extensions.
Cubano provides a Demo Project, which contains information regarding
Once you are ready to start writing your own tests, pull down the Cubano Template Project and adapt this base to start automating your project.
We love to receive feedback.
Please report any issues to this Github project.
Please post other feedback, questions and discussion to the Concordion Google Group with "[Cubano]" in the message header.
All contributions are welcome, we do ask however that you follow our coding standards. This is rather easy as we have checkstyle and code formatter configuration files ready to use.
For eclipse:
Install findbugs plugin
Install checkstyle plugin
Eclipse > Preferences > Checkstyle > New...
Type: External configuration file
Name: Cubano
Location:
Eclipse > Preferences > Java > Code Style > Formatter > Import...
File:
Eclipse > Preferences > Java > Editor > Save Actions
Perform the selected actions on save: Checked Format source code: Format edited lines Organise imports: Checked
Eclipse > Project > Properties > Checkstyle
Checkstyle active for this project: Checked Use the following check configuration for all files: Cubano - (Global)
The project is released to Maven Central using a few plugins defined in build.gradle
.
A GPG client is installed on your command line path. For more information, please refer to http://www.gnupg.org/.
You have created your GPG keys and distributed your public key. For more information, please refer to Gradle Signing Plugin.
You have a Sonatype JIRA account, which has approval for publishing to the Concordion project.
You have configured your gradle.properties, typically located in your ~/.gradle directory:
sonatypeUsername=<your-jira-username>
sonatypePassword=<your-jira-password>
signing.keyId=
where _<your-jira-username>_ and _<your-jira-password>_ are the credentials for your Sonatype JIRA account.
<!--
# Publishing a snapshot
* Ensure the `gradle.properties` file contains the correct version, and ends with `-SNAPSHOT`.
* Commit and push all the changes to GitHub.
* Run `./gradlew -b publish.gradle publishSnapshot`.
* The snapshot should appear under [https://oss.jfrog.org/artifactory/libs-snapshot/org/concordion](https://oss.jfrog.org/artifactory/libs-snapshot/org/concordion).
-->
### Performing a release
* Check that `gradle.properties` contains the desired version number.
* Commit and push all the changes to GitHub. (The release plugin will fail if you have any changes that aren't committed and pushed.)
* Checkout the master branch, if not already checked out.
* Either run `./gradlew clean test javadoc gitPublishPush publishToSonatype closeSonatypeStagingRepository` and manually release the build from the Nexus staging repository or run `./gradlew clean test javadoc gitPublishPush publishToSonatype closeAndReleaseSonatypeStagingRepository` if you are confident. See the [Gradle Nexus Publish Plugin](https://github.com/gradle-nexus/publish-plugin) for more details.
<!--During this build, Gradle will prompt for the version number of the release, and for the next version number to use. See [here](https://github.com/townsfolk/gradle-release#introduction) for the steps taken by the release plugin.-->
* Create [release notes](https://github.com/concordion/cubano/releases) on Github, selecting the version number of the release as the tag.
To build a local release and publish to your local Maven repository, you can run `gradlew clean publishToMavenLocal`.
## Valued Partners
Thanks to [Te Manatū Whakahiato Ora, the Ministry of Social Development, NZ](http://www.msd.govt.nz/) for contributing this framework to the open source community.
<img src="https://catalogue.data.govt.nz/uploads/group/2017-06-09-002021.456412image.jpg" alt="MSD logo" width="200"/>
---
Thanks also to [Structure 101](http://structure101.com/) for their software architecture visualisation tool - helping us keep the architecture in check.
[![Structure 101](http://structure101.com/static-content/images/s101_170.png)](http://structure101.com/)