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:
- Web browser automation using Selenium WebDriver
- API automation (REST / SOAP / HTTP)
- Database automation
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
- usage
- documentation
- working examples
- and set up instructions
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: /cubano/config/checkstyle/checkstyle.xml
-
Eclipse > Preferences > Java > Code Style > Formatter > Import...
File: /cubano/config/formatter/formatter.xml
-
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=<public GPG key>
signing.password=<private GPG key passphrase>
signing.secretKeyRingFile=<path to secret key ring file containing your private key>
where and are the credentials for your Sonatype JIRA account.
- 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 for more details.
- Create release notes 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
.
Thanks to Te Manatū Whakahiato Ora, the Ministry of Social Development, NZ for contributing this framework to the open source community.
Thanks also to Structure 101 for their software architecture visualisation tool - helping us keep the architecture in check.