Releases: typelevel/weaver-test
v0.11.3
What's Changed
This release contains a new matchOrFailFast utility. You can see an example of it in the expectations guide.
API changes
- Create matchOrFailFast utility by @LaurenceWarne in #226
Updates
- Update scala-library, scala-reflect to 2.13.18 by @typelevel-steward[bot] in #258
Behind the scenes
- Update sbt-snapshot4s, snapshot4s-core to 0.2.4 by @typelevel-steward[bot] in #260
- Update sbt-typelevel, sbt-typelevel-site to 0.8.3 by @typelevel-steward[bot] in #256
New Contributors
- @LaurenceWarne made their first contribution in #226
Full Changelog: v0.11.2...v0.11.3
v0.11.2
What's Changed
This release contains a bugfix for test-specific scalacheck config being ignored.
Bug fixes
- Checkers apply functions should preserve config. by @zainab-ali in #257
Full Changelog: v0.11.1...v0.11.2
v0.11.1
What's Changed
This release contains a fixes a bug in the ignore logic for property tests.
Bug fixes
- Ignore property tests with
ignoreby @zainab-ali in #255
Behind the scenes
- Correct order of expected and found values in docs. by @zainab-ali in #253
Full Changelog: v0.11.0...v0.11.1
v0.11.0
NOTE: This release contains breaking changes
If you use Scala Steward, you will migrate automatically.
If you manage your dependency upgrades manually, you must apply a scalafix rule before upgrading. For example with SBT:
sbt scalafixAll github:typelevel/weaver-test/v0_11_0?sha=v0.11.0
What's Changed
Better diffs
This release significantly improves the failure messages of expect.same and expect.eql. It's now easier to tell the difference between the expected and found values, and the diff between the values is more concise due to a pprint-inspired Show instance. Here's an example of a new failure message:
To benefit fully, migrate your codebase from expect to equality assertions using the instructions below.
Cleaner migration from expect to equality assertions
0.9.0 dropped support of automatic value capturing in expect, reducing the utility of its error messages. This release improves the scalafix rules for migrating to better expect assertions.
You can migrate from expect to equality assertions using the RewriteExpect rule.
sbt scalafixAll github:typelevel/weaver-test/RewriteExpect?sha=0.11.0
You can further improve your expect error messages by adding clues using the AddClueToExpect rule.
sbt scalafixAll github:typelevel/weaver-test/AddClueToExpect?sha=0.10.1
Consult the weaver documentation for more details.
API changes
This release contains several breaking API changes.
AssertionExceptionhas been renamed toExpectationFailed, and its fields modified.- The
cancelmethod has been removed in favour ofignore. These two methods had exactly the same behaviour. - The
verifymethod is deprecated in favour ofexpect. - The
taggedmethod has been removed in favour of.ignoreand.only. - The
registerTestmethod has been made final. Instead of overridingregisterTest, you can define helper functions that callregisterTest. Read the documentation to learn more.
In addition, the suite hierarchy has been refactored andPureIOSuitehas been removed.
If you use Scala Steward, you will migrate automatically.
If you manage your dependency upgrades manually, you must apply the v0_11_0 scalafix rule before upgrading.
Improvements
- Improve diff rendering with multi-line show instance by @zainab-ali in #245
- Improve equality assertion failure message by @zainab-ali in #241
Bug fixes
- Render expected value on failure when string diff is the same. by @zainab-ali in #190
- Add a new line between failure messages and logs. by @zainab-ali in #196
- Print seed when property test fails with
failFastby @zainab-ali in #209 - Fix bug in
--onlyargument detection. by @zainab-ali in #220 - Propagate source location in checkers failure message. by @zainab-ali in #225
API refactors
- Deprecate
verifyin favour ofexpectby @zainab-ali in #248 - Remove
taggedfunction in favour of sealed trait. by @zainab-ali in #249 - Refactor Result and Exception classes. by @zainab-ali in #192
- Remove
Blockercompatibility for CE2 and 3. by @zainab-ali in #202 - Remove unsable
PureIOSuiteby @zainab-ali in #219 - Modify suite hierarchy to allow combining
CheckersandDisciplinetraits. by @zainab-ali in #218
Updates
- Update sbt, scripted-plugin to 1.11.5 by @typelevel-steward[bot] in #188
- Update sbt, scripted-plugin to 1.11.6 by @typelevel-steward[bot] in #203
- Update fs2-core to 3.12.2 by @typelevel-steward[bot] in #200
- Update sbt, scripted-plugin to 1.11.7 by @typelevel-steward[bot] in #223
- Update sbt-snapshot4s, snapshot4s-core to 0.2.2 by @typelevel-steward[bot] in #213
- Update sbt-typelevel, sbt-typelevel-site to 0.8.1 by @typelevel-steward[bot] in #221
- Update sbt-scalafix to 0.14.4 by @typelevel-steward[bot] in #229
- Update sbt-typelevel, sbt-typelevel-site to 0.8.2 by @typelevel-steward[bot] in #230
- Update sbt-scalafmt to 2.5.6 by @typelevel-steward[bot] in #240
- Update scalafmt-core to 3.9.10 by @typelevel-steward[bot] in #239
- Update sbt-scalajs, scalajs-compiler, ... to 1.20.1 by @typelevel-steward[bot] in #235
- Update scala-library, scala-reflect to 2.13.17 by @typelevel-steward[bot] in #227
- Update sbt-mdoc to 2.8.0 by @typelevel-steward[bot] in #238
- Update scala3-library, ... to 3.3.7 by @typelevel-steward[bot] in #236
- Update scalafmt-core to 3.10.1 by @typelevel-steward[bot] in #246
Behind the scenes
- Publish snapshots on feature branches. by @zainab-ali in #194
- Use snapshot4s plugin in DogFoodTests. by @zainab-ali in #195
- Delete unused
codecsmodule by @zainab-ali in #198 - Do not shade munit-diff for Scala native. by @zainab-ali in #211
- Reformat with scalafmt. by @zainab-ali in #216
- Refactor tag analysis logic in
WeaverRunnerby @zainab-ali in #217 - Relax private constraint for exception classes. by @zainab-ali in #222
- Reformat MultiLineShow with new scalafmt version. by @zainab-ali in #247
- Move DogFoodTests to snapshot tests by @zainab-ali in #197
- Add scalafix rules for 0.11.x by @zainab-ali in #228
- Improve
RenameExpectSameToExpectrule to apply toexpect.allby @zainab-ali in #242 - Improve verify deprecation message. by @zainab-ali in #251
- Improvements to scalafix rules for
v0.11.0by @zainab-ali in #252
Full Changelog: v0.10.1...v0.11.0
v0.10.1
What's Changed
This release contains a bugfix for compilation errors when expect statements are on the final line of a file. The bug was due to the source location macro implementation, and only occured for Scala 3 when using whitespace syntax.
Improvements
- Line content should be empty if expectation is on last line. by @zainab-ali in #193
Behind the scenes
- Document clue usage by @zainab-ali in #184
Full Changelog: v0.10.0...v0.10.1
v0.10.0
What's Changed
This release improves failure messaging by printing the source location of all failures. New fields needed to be added to the SourceLocation class to achieve this, so this release is binary incompatible.
Improvements
- Work around
possible missing interpolatorlint by @zainab-ali in #179 - Make
SourceLocationa class for binary-compatible evolution. by @zainab-ali in #181 - Less discarding of test failure throwables by @dubinsky in #183
- Print source code for all failures by @zainab-ali in #174
Behind the scenes
- Update installation instructions in README.md by @zainab-ali in #171
- Remove references to the removed
assertby @kubukoz in #178 - Mention Gradle support with the multi-backend Scala plugin. by @dubinsky in #187
New Contributors
Full Changelog: v0.9.3...v0.10.0
v0.9.3
What's Changed
The expect macro respects user-provided source locations
You can now specify an implicit source location for helper functions that call expect and expect.all. The source location will be displayed in the failure message. For example:
def myHelper(x: Int, y: Int)(implicit loc: SourceLocation): Expectations = {
expect(x > y)
}
myHelper(1, 2) // The failure message points to this line in the source codeImprovements
- Propagate source locations in expect macro by @zainab-ali in #175
Updates
- Update cats-effect, cats-effect-testkit to 3.6.2 by @typelevel-steward[bot] in #170
- Update cats-effect, cats-effect-testkit to 3.6.3 by @typelevel-steward[bot] in #176
Behind the scenes
- Update sbt-scalafmt to 2.5.5 by @typelevel-steward[bot] in #165
- Update sbt, scripted-plugin to 1.11.3 by @typelevel-steward[bot] in #168
- Update sbt-mdoc to 2.7.2 by @typelevel-steward[bot] in #173
- Add guide on asserting equality. by @zainab-ali in #172
Full Changelog: v0.9.2...v0.9.3
v0.9.2
What's Changed
expect failure message improved
The expect and expect.all failure messages now contain the source code of the failing assertion.
Improvements
- Scalafix rules for adding clues and using
expect.sameby @zainab-ali in #164 - Improve failure message of
expect.allby @zainab-ali in #166 - Add source code to error message of expect. by @zainab-ali in #167
Full Changelog: v0.9.1...v0.9.2
v0.9.1
What's Changed
expect failure message improved
The assertion failed message now directs developers towards the clue function.
Improvements
- Direct users towards clue function. by @zainab-ali in #160
Updates
- Update scala3-library, ... to 3.3.6 by @typelevel-steward in #148
- Update scala-library, scala-reflect to 2.13.16 by @zainab-ali in #159
- Update scala-library, scala-reflect to 2.12.20 by @typelevel-steward in #61
- Update sbt-scalajs, scalajs-compiler, ... to 1.18.2 by @typelevel-steward in #129
- Update scalacheck to 1.17.1 by @typelevel-steward in #32
- Update cats-effect, cats-effect-testkit to 3.5.7 by @typelevel-steward in #116
- Update cats-effect, cats-effect-testkit to 3.6.1 by @typelevel-steward in #162
- Update fs2-core to 3.12.0 by @typelevel-steward in #145
Behind the scenes
- Set tlBaseVersion to 0.9. by @zainab-ali in #152
- Update sbt-typelevel, sbt-typelevel-site to 0.7.7 by @typelevel-steward in #131
- Update sbt, scripted-plugin to 1.11.2 by @typelevel-steward in #158
- Update sbt-typelevel, sbt-typelevel-site to 0.8.0 by @typelevel-steward in #157
- Update sbt-scalafix to 0.14.3 by @typelevel-steward in #149
- Update scalafmt-core to 3.9.6 by @typelevel-steward in #147
- Update sbt-scalafmt to 2.5.4 by @typelevel-steward in #125
- Update sbt-mdoc to 2.5.4 by @typelevel-steward in #56
- Update portable-scala-reflect to 1.1.3 by @typelevel-steward in #49
- Update cats-laws to 2.11.0 by @typelevel-steward in #47
- Update sbt-mdoc to 2.7.1 by @typelevel-steward in #161
- Fixup some things in the documentation that are not true anymore by @CJSmith-0141 in #154
- Add an FAQ about the stewardship change by @zainab-ali in #153
Full Changelog: v0.9.0...v0.9.1
v0.9.0
Migrating to weaver 0.9.0
The stewardship of Weaver has moved from disneystreaming to typelevel.
If you use Scala Steward, you will migrate automatically.
If you manage your dependency upgrades manually, you must:
- Rename any usages of
asserttoexpect. If you use scalafix, you can apply a scalafix rule. For example, with SBT:sbt scalafixAll github:typelevel/weaver-test/RenameAssertToExpect?sha=v0.9.0 - Rename your weaver dependency:
- libraryDependencies += "com.disneystreaming" %% "weaver-cats" % "x.y.z" % Test
+ libraryDependencies += "org.typelevel" %% "weaver-cats" % "0.9.0" % TestRename any usages of CheckConfig.copy to corresponding with* methods:
override def checkConfig: CheckConfig =
- super.checkConfig.copy(minimumSuccessful = 1000)
+ super.checkConfig.withMinimumSuccessful(1000)Note that if you use Scala Native, you may see linking errors due to weaver's shaded munit-diff dependency. You can address these by explicitly adding munit-diff:
libraryDependencies += "org.scalameta" %%% "munit-diff" % munitVersion % TestWhat's Changed
assert alias removed
The assert macro has been removed in favour of a better expect. You can rename assert to expect using scalafix, as described above.
expect error messages do not print contents
The expect function no longer prints its contents on failure. It now requires clues to print useful error messages.
You should replace expectations of the form expect(a == b) with expect.same(a, b) using scalafix.
sbt scalafixAll github:typelevel/weaver-test/RewriteExpect?sha=0.11.0
clue support
The expect function now requires clues to print useful error messages. You can read more about clue in the expectations documentation. If you'd prefer to skip the extra troubleshooting step of adding clue to failing expectations, you can add clue to all your existing expectations using scalafix.
sbt scalafixAll github:typelevel/weaver-test/AddClueToExpect?sha=v0.11.0
Better error messages
Weaver's error messages have been greatly improved thanks to munit-diff.
Improvements
- Print stacktrace in logs by @henryxparker in #18
- Add Comparison trait. by @zainab-ali in #24
- Use munit diff logic by @zainab-ali in #25
- Use initial Seed in CheckConfig and failure message. by @zainab-ali in #39
- Use a LinkedBlockingQueue instead of polling. by @zainab-ali in #44
- Replace expecty with clue by @zainab-ali in #64
- Remove assert. by @zainab-ali in #69
Updates
- Update fs2-core to 3.10.2 by @typelevel-steward in #26
- Update sbt-scalajs, scalajs-compiler, ... to 1.16.0 by @typelevel-steward in #27
- Update scala-library, scala-reflect to 2.12.19 by @typelevel-steward in #28
- Update nscplugin, sbt-scala-native, ... to 0.4.17 by @typelevel-steward in #30
- Update sbt to 1.9.9 by @typelevel-steward in #31
- Update scalafmt-core to 3.7.17 by @typelevel-steward in #33
- Update cats-effect, cats-effect-testkit to 3.5.4 by @typelevel-steward in #34
- Update sbt-typelevel, sbt-typelevel-site to 0.7.0 by @typelevel-steward in #36
- Update sbt-scalafix to 0.12.1 by @typelevel-steward in #40
- Update sbt-shading to 2.1.5 by @typelevel-steward in #46
Behind the scenes
- Add initial Code of Conduct by @valencik in #4
- Remove the intellij runner, docs, and site link by @valencik in #2
- tests(catsJVM): fix paths in Cats JVM tests by @zetashift in #9
- Fix CI pipeline by @zainab-ali in #13
- Migrate build to sbt-typelevel by @valencik in #8
- Fix organization and artifact names by @armanbilge in #16
- Adds
.onlyand.ignoredocumentation. by @CJSmith-0141 in #12 - Migrate documentation to Laika (sbt-typelevel-site) by @CJSmith-0141 in #17
- Documentation cleanup by @CJSmith-0141 in #20
- Remove CODE_OF_CONDUCT override, use org default by @valencik in #21
- Add scalafix rule for renaming
asserttoexpectby @zainab-ali in #70 - Update munit-diff to 1.0.0 by @typelevel-steward in #45
- Remove references to Disney. by @zainab-ali in #72
- Checkout
lfsassets in the pages build. by @zainab-ali in #78 - Fail property test when discard count exceeds
maximumDiscardedby @zainab-ali in #112 - Publish to s01 sonatype host. by @zainab-ali in #113
- Modify license to Apache. by @zainab-ali in #150
New Contributors
- @valencik made their first contribution in #4
- @zetashift made their first contribution in #9
- @zainab-ali made their first contribution in #13
- @armanbilge made their first contribution in #16
- @CJSmith-0141 made their first contribution in #12
- @henryxparker made their first contribution in #18
- @kubukoz made their first contribution in #11
- @typelevel-steward made their first contribution in #26
Full Changelog: https://github.com/typelevel/weaver-test/commits/v0.9.0