Concordion Plus is a simple extension to the Concordion Agile Testing tool.

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.An example specification

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.

Idea JUnit Results

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.

Eclipse JUnit Runner

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..