Concordion is an open source runner for executable specifications that creates rich living documentation.
Users should see the Concordion web site for details of how to download and use Concordion.
This README covers information for people wanting to work with the Concordion Java source code. Unmaintained versions of Concordion are also available for other languages, but not with the full feature set. See Concordion.NET, pyconcordion and ruby-concordion.
Concordion currently targets Java 8 and above.
Concordion uses Gradle as a build tool. The code base includes the Gradle Wrapper, which will automatically download the correct version of Gradle.
From the command line, run gradlew tasks
to show available tasks.
Note: If the current directory is not on your path, you will need to use ./gradlew tasks
on Unix-based systems, or .\gradlew tasks
on Windows.
The test
task runs both the Concordion specification tests and unit tests.
Since Concordion supports both JUnit Vintage and JUnit Jupiter, the tests can run with either version of JUnit.
To run the tests with JUnit Jupiter, run the following from the command line:
gradlew clean test
To run the tests with JUnit Vintage, run the following from the command line:
gradlew clean testVintage
This will download the required dependencies, clean the existing project, recompile all source code and run all the tests.
The Concordion specification output is written to the ./build/reports/spec
folder.
To switch between the JUnit Jupiter and Vintage tests, Concordion uses the Manifold preprocessor.
For example:
#if JUNIT_VINTAGE
@RunWith(ConcordionRunner.class)
#else
@ConcordionFixture
#endif
The JUNIT_VINTAGE
compiler argument is set by the testVintage
Gradle task.
Run the following from the command line:
gradlew clean jar
The jar file is written to the ./build/libs
folder.
Installing a Concordion jar file into your local Maven repository makes it available to other projects that are using Maven or Gradle to manage their dependencies.
Run the following from the command line:
gradlew pTML
(where pTML is short for publishToMavenLocal).
In order to use the local Maven repository in a Gradle project, you must add mavenLocal()
to your repositories
block. You can add this to the project's build.gradle script, or set it globally by adding the following to your ~/.gradle/init.gradle script:
allprojects {
repositories {
mavenLocal()
}
}
You will then need to ensure that your project's build.gradle script refers to the version you have in your local Maven repository, for example your dependencies might include:
org.concordion:concordion:2.0.0-SNAPSHOT
or
org.concordion:concordion:+
for the latest version.
Dependent on the version of your IDE, you may need to install a Gradle plugin to your IDE before importing the project. See Gradle tooling for details.
On importing the project to your IDE, the required dependencies will be downloaded.
For IntelliJ IDEA, installing the Manifold plugin will enable IntelliJ to recognise the Manifold preprocessor syntax.
See the wiki for our version numbering approach and details of making a new release.
History prior to April 2013 is in Google code archive code and history.