Skip to content

Releases: jqwik-team/jqwik

Release 1.2.6: Lifecycle Hooks Improvements

28 Mar 13:59
Compare
Choose a tag to compare

Breaking Changes

Release 1.2.5: Prepare for Spring Support

25 Mar 15:13
Compare
Choose a tag to compare

New and Enhanced Features

  • Added @BeforeExample as an alias of @BeforeProperty

  • Added @AfterExample as an alias of @AfterProperty

  • Lifecycle methods annotated with @BeforeTry, @AfterTry, @BeforeProperty,
    @AfterProperty, @BeforeContainer and @AfterContainer can now have
    parameters that will be resolved using registered ResolveParameterHook instances.

  • Added ActionSequence.withInvariant(String label, Invariant<M> invariant);.

  • Added ActionSequence.peek(Consumer<M> modelPeeker).

  • Arbitraries.sequences(Arbitrary<? extends Action<M>> actionArbitrary) does now accept
    covariant subtypes and still returns type Arbitrary<Action<M>>.

  • Reporting text on failed statistics coverage check improved.

  • Upgrade to JUnit Platform 1.6.1

Breaking Changes

Bug Fixes

  • Labelled statistics reports should now reliably being reported
    in order of first usage.

Release 1.2.4: Annotated Lifecycle Methods

19 Feb 14:32
Compare
Choose a tag to compare

New and Enhanced Features

  • Annotated lifecycle methods have been implemented:

    • @BeforeContainer
    • @AfterContainer
    • @BeforeProperty
    • @AfterProperty
    • @BeforeTry
    • @AfterTry
  • @StatisticsReport can now also be used on container classes

  • Statistical coverage checking can now be done in a fluent API style

  • Improved shrinking of parameters that require duplicate values for falsifying a property

  • Upgrade to JUnit Platform 1.6.0

Breaking Changes

  • Removed Statistics.coverageOf(). It's now Statistics.label(..).coverage(..)

  • Falsifier no longer extends Predicate<T>

  • Many breaking changes in Lifecycle API; but this API had not been published
    or documented anyway.

Bug Fixes

No open bugs had been reported.

Release 1.2.3 - Coverage Checking and More

28 Jan 15:47
Compare
Choose a tag to compare

New and Enhanced Features

Breaking Changes

  • Statistics.collect(..) and StatisticsCollector.collect(..) can no longer
    be called with no values. There must be at least one - but it can be null.

  • Statistics.collect(..) and StatisticsCollector.collect(..) must always
    be called with same number of parameters.

  • Deprecated net.jqwik.api.Statistics. Use net.jqwik.api.statistics.Statistics instead.

  • The standard property report is now the last thing to be reported,
    i.e. after statistics reports.

  • Default priority in AbstractDomainContextBase is now 0 (previously 1),
    i.e. they no longer supersede built-in jqwik arbitrary providers but mix in.

Bug Fixes

No open bugs had been reported.

Release 1.2.2

06 Jan 10:51
Compare
Choose a tag to compare

New and Enhanced Features

  • When configuration parameter database is set to empty, test run recording
    is now completely disabled.

  • Exhaustive generation of single decimals and floats

  • Added Arbitrary.sample() and Arbitrary.sampleStream() for enabling
    the use of generators outside of properties

  • Arbitraries.oneOf(Arbitrary<? extends T>... arbitraries) does now accept
    covariant subtypes and still returns type Arbitrary<T>.

Breaking Changes

  • Deprecated Arbitrary.withSamples(T... samples)

Bug Fixes

Release 1.2.1

24 Oct 12:17
Compare
Choose a tag to compare

New and Enhanced Features

  • New configuration parameter defaultGeneration for jqwik.properties file
  • Added CharacterArbitrary.with(CharSequence allowedChars)
  • Added StringArbitrary.withChars(CharSequence allowedChars)
  • Arbitraries of List, Set, Stream und arrays are now of type StreamableArray
  • Introduced StreamableArray.reduce()
  • HashMap can now be generated by default

Breaking Changes

  • Arbitrary.exhaustive() must no longer be overridden in implementors of
    Arbitrary. Override Arbitrary.exhaustive(long maxNumberOfGeneratedSamples) instead.

  • TypeUsage.getTypeArguments(): In case of type variables or wildcard types
    this method will now return the upper bound's type arguments if there is
    a single upper bound and no lower bound. This enables correct generation
    of variables like T extends Map<Integer, String>.

Bug Fixes

  • @ForAll annotation could not be replaced by self-made annotation. Now it can.

  • Annotations in type parameters of bounds of type variables
    are now correctly recognized.

  • Annotations in type parameters of bounds of wildcards
    are now correctly recognized.

Release 1.2.0

30 Jul 13:28
Compare
Choose a tag to compare
  • Breaking Change: Removed CharacterArbitrary.between(min, max)
    which had been deprecated in 1.1.3

  • Promoted from API.Status.EXPERIMENTAL to API.Status.MAINTAINED:

    • Arbitraries.forType(Class<T> targetType) and interface TypeArbitrary
    • Annotation @UseType and enum UseTypeMode
    • Arbitrary.fixGenSize(int genSize)
    • Combinators.withBuilder(Supplier<B> builderSupplier) and
      Combinators.withBuilder(Arbitrary<B> builderArbitrary)
    • Annotation @Domain and interface DomainContext
  • Upgrade to JUnit platform 1.5.1

  • Upgrade to Gradle 5.5.1

  • Default character generation now excludes codepoints 0xd800 through 0xdfff

  • Introduced Labeled Statistics

  • Added Arbitraries.entries()

  • Added default generation for Map.Entry instances

  • Fixed set generation bug #65

  • Enhanced statistics reporting
    by absolute count

  • jqwik can now generate instances of
    functions and other functional types

  • Fixed bug in Unshrinkable.equals.
    Many thanks to mhyeon-lee for that pull request!

  • List and array generation from unique arbitraries now have a default max size
    that makes sense

  • Provider methods do now accept
    two optional parameters

  • New @From annotation to
    provide arbitraries for embedded type parameters

Release 1.1.6

22 Jun 08:22
Compare
Choose a tag to compare
  • Removed dependencies to internal classes in JUnit platform
  • Added Arbitraries.maps()
  • Added default generation for Map instances
  • @Domain annotation can now also refer to inner class of test container's base class.
    Many thanks to larsrh for that pull request!

Release 1.1.5

01 Jun 08:09
Compare
Choose a tag to compare
  • Added shrinkTowards(value) to all decimal number arbitraries:
    FloatArbitrary, DoubleArbitrary, BigDecimalArbitrary
  • Exceptions during test class instance creation are now reported as failures
  • Removed caching of engine descriptor in JqwikTestEngine

Release 1.1.4

24 May 14:33
Compare
Choose a tag to compare
  • Upgrade to junit-platform 1.4.2
  • Added Arbitrary.collect(Predicate<List<T>> until) in order to collect values in a list
  • Added shrinkTowards(value) to all integral number arbitraries:
    ByteArbitrary, ShortArbitrary, IntegerArbitrary, LongArbitrary, BigIntegerArbitrary
    in order to change the shrinking target
  • Upgrade Gradle to 5.4.2