About
Concordion+ is an extension to the excellent Concordion agile testing tool which improves the ability to create executable specifications which have more than one acceptance test or scenario.
The full specifications for Concordion+ are available here and are executable specifications that are run using Concordion. The source code is available from google code,
The easiest way to understand what Concordion+ does is to see a real example. This example is included in the source code. When the example is run using Concordion+ the output is highlighted to indicated the status of each scenario. The html output after running the example is available here.
Using
To use Concordion+, you add a new namespace of http://www.agileinsider.org/concordion/plus in your html specification. You then have access to two new commands: ignore and scenario.
<html xmlns:cp="http://www.agileinsider.org/concordion/plus" xmlns:c="http://www.concordion.org/2007/concordion"> <div class="scenario" cp:ignore="Work In Progress"> This is an ignored <span c:execute="nonExistantMethod()">section</span> which might indicate functionality that is currently being implemented. </div> <div class="scenario" cp:scenario="Hello World Scenario"> Simple scenarios to test <span c:assertEquals="getHelloWorld()">Hello World</span> functionality. </div>
JUnit Integration
To simplify using Concordion+, you can annotate your java fixtures to @RunWith(ConcordionPlus.class). This has the added benefit that any @Before or @After methods will also be run before and after each scenario. This makes it easier for developers to perform the traditional setup and teardown they are familiar with when writing unit tests using JUnit.
@RunWith(ConcordionPlus.class) public class MyStoryTest { @Before public void setupBeforeEachScenario() { // any code here will execute before each scenario } @After public void cleanupAfterEachScenario() { // any code here will execute after each scenario } // Rest of fixture code... }
IDE Integration
When using the @RunWith(ConcordionPlus.class) annotation the output within common IDEs provides feedback of the state of the individual scenarios which make up the specification.
IntelliJ IDEA
When using IntelliJ, each scenario or ignored section is individually captured in the JUnit results panel.
Eclipse
Unfortunately, in Eclipse, the individual scenarios and ignore sections are categorised under "Unrooted Tests". When running individual specifications this should not cause any issues, however this may present problems when running multiple specifications.
Downloads
This project is available from Maven Central, with a group id of org.agileinsider and an artifact id of concordion-plus. In addition you can download directly from google code.
Issues
Issues should be reported to the concordion-plus issue list at google code..