Skip to main content

Difflicious

Diffs for human and machine consumption

Release

Difflicious provides diffs for structured data in Scala, primarily for tests.

  • Readable and actionable diff results tells you where exactly your data is different
  • Flexible and configurable diffing logic
    • Ignore unimportant fields when comparing
    • Compare Lists of items independent of order
    • Match Map entries by key and show diffs of the values
  • Integration with test frameworks and popular libraries

Hungry for some good diffs? Check out the documentation!

Installation

If you're using the MUnit test framework:

// == SBT ==
"com.github.jatcwang" %% "difflicious-munit" % "v0.6.0"
// == Mill ==
ivy"com.github.jatcwang::difflicious-munit:v0.6.0"

If you're using ScalaTest test framework:

// == SBT ==
"com.github.jatcwang" %% "difflicious-scalatest" % "v0.6.0"
// == Mill ==
ivy"com.github.jatcwang::difflicious-scalatest:v0.6.0"

If you're using Weaver test framework:

// == SBT ==
"com.github.jatcwang" %% "difflicious-weaver" % "v0.6.0"
// == Mill ==
ivy"com.github.jatcwang::difflicious-weaver:v0.6.0"

Contributing

All contributions are welcome, including suggestions and ideas. For larger changes, please raise an issue first to avoid duplicate work :)

Attributions

This project takes many inspirations from:

  • diffx's path expression for ignoring fields
  • MUnit's case class diffs

License

Apache License 2.0. See LICENSE file.