Skip to content

Releases: concordion/concordion

4.0.1

16 Jul 09:41
e330633
Compare
Choose a tag to compare

Concordion 4.0.1

Bug Fixes

  • Fixed issue #355 when using Concordion commands on table rows with Markdown specifications

Build Updates

  • Gradle has been updated to Gradle 8.2 to support JDK20.
  • Updated gradle plugins
  • Fixed gradle deprecation warnings

4.0.0

02 Jul 12:23
1dc4dcd
Compare
Choose a tag to compare

Concordion 4.0.0

New Features

  • Concordion now supports JUnit5 Jupiter!!!

To use it, just replace @RunWith(ConcordionRunner.class) with @ConcordionFixture in your fixture classes.

If you're using the concordion:run command with JUnit 4 specifications, you should also add junit-vintage-engine to your build file. For example:

testRuntimeOnly('org.junit.vintage:junit-vintage-engine') with Gradle, or

        <dependency>
            <groupId>org.junit.vintage</groupId>
            <artifactId>junit-vintage-engine</artifactId>
            <version>5.9.3</version>
            <scope>test</scope>
        </dependency>

with Maven.

It's been a very long road to get here, starting with the work of @tenwit and @drtimwright.

Last year, @lorenzodee took the bull by the horns and developed a ConcordionTestEngine for JUnit 5. The work he has done is excellent! Sorry for the delay in adding the final touches over the last few months.

  • While we continue to support JUnit 4 fixtures with the JUnit Vintage runner, JUnit 3 is no longer supported.

3.2.0

28 May 08:03
869a272
Compare
Choose a tag to compare

Concordion 3.2.0

New Features

  • Now uses JUnit5 with the Vintage engine, which provides a TestEngine for running JUnit 3 and JUnit 4 based tests. This is a step towards implementing a JUnit5 Jupiter engine in the upcoming Concordion v4.0.0. There is a small performance penalty since we now need to have a 2-pass build of Concordion to discover the examples before running the tests. Thanks to @lorenzodee for the great work in developing this and the Jupiter engine!

Bug Fixes

  • Fixed ResourceFinder which was failing on Windows.
  • Cleaned up deprecated methods.

Build Updates

  • Gradle has been updated to Gradle 7.5 to support JDK17.
  • git-publish plugin has been updated to 3.0.1.

3.1.3

09 Jul 09:41
7f275a8
Compare
Choose a tag to compare

Fix #285 "URI is not heirarchical" when using @ConcordionResources with JDK9+

Thanks to @sergiowww for the patch!

3.1.2

24 Jun 08:54
818be93
Compare
Choose a tag to compare

Additional dependencies added as compile rather than runtime dependencies (api rather than implementation in Gradle):

  • flexmark
  • flexmark-ext-gfm-strikethrough
  • flexmark-ext-tables
  • xom

3.1.1

20 Jun 07:47
Compare
Choose a tag to compare

Concordion 3.1.1

Bug fixes

  • Concordion 3.1.0 exposes JUnit as a runtime rather than a compile dependency. Users will need to add JUnit as a dependency to their build scripts. In Concordion 3.1.1 it reverts to being a compile dependency. Fixes #331.

3.1.0

20 Jun 06:47
4b4fcf1
Compare
Choose a tag to compare

Concordion 3.1.0

New Features

On occasions where the whole table row is required when using the execute on a table command, for example logging the row, the special variable #ROW contains a Map<String, String> with the key being the column header value and the value being the column cell value for each column in the table row. Examples are provided in the execute on a table specification. This resolves #313 and #316.

Bug Fixes

  • Resources are now copied when a relative path is passed to @ConcordionResources. Fixes #286.

Build Updates

  • Gradle has been updated to Gradle 7. A number of the plugins have been updated. The publishing scripts have been added to build.gradle with publish.gradle being removed.
  • Travis CI has been replaced by GitHub Actions for building and testing Concordion.
  • With Bintray and JCenter being retired, the Gradle build has been updated to publish to Maven Central. References to JCenter have been replaced by Maven Central.

Dependency Updates

  • JUnit has been updated to 4.13.2
  • OGNL has been updated to 3.1.29
  • XOM has been updated to 1.3.7

3.0.1

04 Jul 07:32
ac6d693
Compare
Choose a tag to compare

Fixed #304

3.0.0

30 May 07:38
Compare
Choose a tag to compare

Concordion 3.0.0 requires Java 8 or later and JUnit 4.

JUnit 3 and earlier versions of Java are no longer supported.

New Features

The deprecated Pegdown markdown parser has been replaced by Flexmark. Flexmark is faster, supports CommonMark and has additional extensions and configuration options.

The MarkdownExtensions that were introduced for Pegdown for Concordion 2.0.0 are still supported.

A new annotation FlexmarkOptions has been introduced to support the extended range of extensions and configuration options supported by Flexmark.

Dependencies

The Flexmark library has been added.
The Pegdown and Parboiled libraries have been removed.

Deprecated methods removed

The following deprecated methods have been removed:

AbstractCommand
List getExamples(CommandCall command)
void execute(CommandCall commandCall, Evaluator evaluator, ResultRecorder resultRecorder)
void setUp(CommandCall commandCall, Evaluator evaluator, ResultRecorder resultRecorder)
void verify(CommandCall commandCall, Evaluator evaluator, ResultRecorder resultRecorder)

ClassNameBasedSpecificationLocator
ClassNameBasedSpecificationLocator(String specificationSuffix)

FixtureRunner
ResultSummary run(Fixture fixture)

2.2.0

14 Jul 10:11
Compare
Choose a tag to compare

New Features

The new features are:

Individual examples can also be ignored by marking up the example in the specification with a status of Ignored. For example, using Markdown format:

### [Header text](- "example name c:status=Ignored")

or in HTML:

<div c:example="my-example" c:status="Ignored">

Fixes

  • #264 - Fix for issues #246 and #262 - Example listeners are passed the wrong example fixture instance when a specification contains multiple examples.

API changes for extensions

This release introduces a number of API changes.

These changes won't impact users of Concordion directly, but may impact extension users and creators. If you are using an affected extension, you will be notified on startup of Concordion via a message to the stderr console.

If you are using the following extensions, they will need to be upgraded:

concordion-executeonlyif-extension

Will need upgrading to version 0.3.0 (or later)

concordion-run-totals-extension

Will need upgrading to version 1.2.0 (or later)

concordion-embed-extension

Uses APIs that are now deprecated, should be upgraded to version 1.2.0 (or later) before Concordion 3.0.0.

concordion-excel-extension

Uses APIs that are now deprecated, should be upgraded to version 2.1.0 (or later) before Concordion 3.0.0

concordion-screenshot-extension

Uses APIs that are now deprecated, should be upgraded to version 1.3.0 (or later) before Concordion 3.0.0

API changes

The following public APIs have been changed:

org.concordion.Concordion

  • Parameter 5 of public Concordion(java.util.List, org.concordion.api.SpecificationLocator, org.concordion.api.SpecificationReader, org.concordion.api.EvaluatorFactory, org.concordion.api.Fixture) has changed its type to org.concordion.api.FixtureDeclarations
  • The deprecated constructor public Concordion(org.concordion.api.SpecificationLocator, org.concordion.api.SpecificationReader, org.concordion.api.EvaluatorFactory, org.concordion.api.Fixture) has been removed
  • Parameter 1 of public void checkValidStatus(org.concordion.api.Fixture) has changed its type to org.concordion.api.FixtureDeclarations
  • Parameter 1 of public java.util.List getExampleNames(org.concordion.api.Fixture) has changed its type to org.concordion.api.FixtureDeclarations
  • In method public boolean hasExampleCommands(org.concordion.api.Fixture) the Fixture argument has been removed

org.concordion.api.AbstractCommandDecorator,
org.concordion.api.Command,
org.concordion.api.CommandCall,
org.concordion.api.CommandCallList

  • The setup, execute and verify methods now take an additional argument of type org.concordion.api.Fixture

org.concordion.api.CommandCallList

  • The processSequentially method now takes an additional argument of type org.concordion.api.Fixture

org.concordion.api.EvaluatorFactory

  • The argument of the createEvaluator method has changed type from java.lang.Object toorg.concordion.api.Fixture

org.concordion.api.Fixture

  • Removed org.concordion.api.FixtureDeclarations from the set of implemented interfaces, along with the methods List getClassHierarchyParentFirst(), List getClassPathRoots(), Class getFixtureClass(), String getFixturePathWithoutSuffix(), org.concordion.internal.FixtureType getFixtureType() and public String getSpecificationDescription()

org.concordion.api.FixtureDeclarations

  • Added String getDescription(), Class getFixtureClass() and String getFixturePathWithoutSuffix()

org.concordion.api.ResultSummary

  • The assertIsSatisfied, print and printCountsToString methods all take a org.concordion.api.FixtureDeclarations parameter in-place of org.concordion.api.Fixture
  • The deprecated versions of these methods have been removed

org.concordion.api.Specification

  • Added 'String getDescription()' method
  • void process(org.concordion.api.Evaluator, org.concordion.api.ResultRecorder) now takes an additional parameter of type org.concordion.api.Fixture

org.concordion.api.SpecificationByExample

  • String getSpecificationDescription() and void setFixture(org.concordion.api.Fixture) have been removed
  • void processExample(org.concordion.api.Evaluator, java.lang.String, org.concordion.api.ResultRecorder) now takes an additional parameter of type org.concordion.api.Fixture

org.concordion.api.SpecificationLocator

  • Parameter 1 of org.concordion.api.Resource locateSpecification(java.lang.Object, java.lang.String) has changed its type to org.concordion.api.FixtureDeclarations
  • Method public org.concordion.api.Resource locateSpecification(java.lang.Object) has been removed

org.concordion.api.SpecificationLocatorWithType

  • Class org.concordion.api.SpecificationLocatorWithType removed

org.concordion.api.extension.ConcordionExtender

  • Method 'public org.concordion.api.extension.ConcordionExtender withImplementationStatusModifier(org.concordion.api.ImplementationStatusModifier)' has been added

org.concordion.api.listener.ExampleEvent,
org.concordion.api.listener.OuterExampleEvent

  • Method 'public ExampleEvent(java.lang.String, org.concordion.api.Element, org.concordion.api.ResultSummary)' has a new parameter of type org.concordion.api.Fixture
  • Method 'public org.concordion.api.Fixture getFixture()' has been added

The other internal changes should not affect users who are using Concordion as-is, or who are using the Extension mechanism, but are potentially breaking for users who are extending the Concordion code base directly. See changes between Concordion 2.1.3 and 2.2.0.