2.2.0
New Features
The new features are:
- #267 - Allow examples to be selectively
IGNORED
orEXPECTED_TO_FAIL
, using new extension method withImplementationStatusModifier(). (Thanks to chiknrice for the PR).
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 toorg.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 toorg.concordion.api.FixtureDeclarations
- Parameter 1 of
public java.util.List getExampleNames(org.concordion.api.Fixture)
has changed its type toorg.concordion.api.FixtureDeclarations
- In method
public boolean hasExampleCommands(org.concordion.api.Fixture)
theFixture
argument has been removed
org.concordion.api.AbstractCommandDecorator,
org.concordion.api.Command,
org.concordion.api.CommandCall,
org.concordion.api.CommandCallList
- The
setup
,execute
andverify
methods now take an additional argument of typeorg.concordion.api.Fixture
org.concordion.api.CommandCallList
- The
processSequentially
method now takes an additional argument of typeorg.concordion.api.Fixture
org.concordion.api.EvaluatorFactory
- The argument of the
createEvaluator
method has changed type fromjava.lang.Object
toorg.concordion.api.Fixture
org.concordion.api.Fixture
- Removed
org.concordion.api.FixtureDeclarations
from the set of implemented interfaces, along with the methodsList getClassHierarchyParentFirst()
,List getClassPathRoots()
,Class getFixtureClass()
,String getFixturePathWithoutSuffix()
,org.concordion.internal.FixtureType getFixtureType()
andpublic String getSpecificationDescription()
org.concordion.api.FixtureDeclarations
- Added
String getDescription()
,Class getFixtureClass()
andString getFixturePathWithoutSuffix()
org.concordion.api.ResultSummary
- The
assertIsSatisfied
,print
andprintCountsToString
methods all take aorg.concordion.api.FixtureDeclarations
parameter in-place oforg.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 typeorg.concordion.api.Fixture
org.concordion.api.SpecificationByExample
String getSpecificationDescription()
andvoid setFixture(org.concordion.api.Fixture)
have been removedvoid processExample(org.concordion.api.Evaluator, java.lang.String, org.concordion.api.ResultRecorder)
now takes an additional parameter of typeorg.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.