munit

package munit

Type members

Classlikes

class AfterEach(val test: Test) extends Serializable
abstract class AnyFixture[T](val fixtureName: String)

AnyFixture allows you to acquire resources during setup and clean up resources after the tests finish running.

AnyFixture allows you to acquire resources during setup and clean up resources after the tests finish running.

Fixtures can be local to a single test case by overriding beforeEach and afterEach, or they can be re-used for an entire test suite by extending beforeAll and afterAll.

It's preferable to use a sub-class like munit.Fixture or munit.FutureFixture instead of this class. Extend this class if you're writing an integration a third-party type like Cats Resource.

Value parameters:
fixtureName

The name of this fixture, used for displaying an error message if beforeAll() or afterAll() fail.

See also:
object Assertions extends Assertions
Companion:
class
Companion:
object
class BeforeEach(val test: Test) extends Serializable
class Clue[+T](val source: String, val value: T, val valueType: String) extends Serializable
Companion:
object
object Clue extends ClueMacro
Companion:
class
class Clues(val values: List[Clue[_]])
Companion:
object
object Clues
Companion:
class
@implicitNotFound("Can\'t compare these two types:\n First type: ${A}\n Second type: ${B}\nPossible ways to fix this error:\n Alternative 1: provide an implicit instance for Compare[${A}, ${B}]\n Alternative 2: upcast either type into `Any` or a shared supertype")
trait Compare[A, B]

A type-class that is used to compare values in MUnit assertions.

A type-class that is used to compare values in MUnit assertions.

By default, uses == and allows comparison between any two types as long they have a supertype/subtype relationship. For example:

  • Compare[T, T] OK
  • Compare[Some[Int], Option[Int]] OK, subtype
  • Compare[Option[Int], Some[Int]] OK, supertype
  • Compare[List[Int], collection.Seq[Int]] OK, subtype
  • Compare[List[Int], Vector[Int]] Error, requires upcast to Seq[Int]
Companion:
object
object Compare extends ComparePriority1
Companion:
class

Allows comparison between A and B when A is a subtype of B

Allows comparison between A and B when A is a subtype of B

Allows comparison between A and B when B is a subtype of A.

Allows comparison between A and B when B is a subtype of A.

This implicit is defined separately from ComparePriority1 in order to avoid diverging implicit search when comparing equal types.

class ComparisonFailException(val message: String, val obtained: Any, val obtainedString: String, val expected: Any, val expectedString: String, val location: Location, val isStackTracesEnabled: Boolean) extends ComparisonFailure with FailExceptionLike[ComparisonFailException]

The base exception for all comparison failures.

The base exception for all comparison failures.

This class exists so that it can extend org.junit.ComparisonFailure, which is recognised by IntelliJ so that users can optionally compare the obtained/expected values in a GUI diff explorer.

Value parameters:
expected

the expected value from this comparison.

expectedString

the pretty-printed representation of the obtained value. This string is displayed in the IntelliJ diff viewer.

location

the source location where this exception was thrown.

message

the exception message.

obtained

the obtained value from this comparison.

obtainedString

the pretty-printed representation of the obtained value. This string is displayed in the IntelliJ diff viewer.

object EmptyPrinter extends Printer

Default printer that does not customize the pretty-printer

Default printer that does not customize the pretty-printer

object Exceptions
class FailException(val message: String, val cause: Throwable, val isStackTracesEnabled: Boolean, val location: Location) extends AssertionError with FailExceptionLike[FailException]
trait FailExceptionLike[T <: AssertionError] extends Serializable

The base class for all MUnit FailExceptions.

The base class for all MUnit FailExceptions.

Implementation note: this class exists so that we could fix the issue https://youtrack.jetbrains.com/issue/SCL-18255 In order to support the JUnit comparison GUI in IntelliJ we need to extend org.junit.ComparisonFailure, which is a class and not an interface. We can't make munit.FailException extend org.junit.ComparisonFailure since not all "fail exceptions" are "comparison failures". Instead, we introduced munit.ComparisionFailException, which extends org.junit.ComparisonFailure and this base trait. Internally, MUnit should match against FailExceptionLike[_] instead of munit.FailException directly.

class FailSuiteException(val message: String, val location: Location) extends FailException
abstract class Fixture[T](name: String) extends AnyFixture[T]

Fixture allows you to acquire resources during setup and clean up resources after the tests finish running.

Fixture allows you to acquire resources during setup and clean up resources after the tests finish running.

Fixtures can be local to a single test case by overriding beforeEach and afterEach, or they can be re-used for an entire test suite by extending beforeAll and afterAll.

There is no functional difference between extending Fixture[T] or AnyFixture[T]. The only difference is that an IDE will auto-complete Unit in the result type instead of Any.

Value parameters:
fixtureName

The name of this fixture, used for displaying an error message if beforeAll() or afterAll() fail.

See also:
abstract class FunSuite extends BaseFunSuite
abstract class FutureFixture[T](name: String) extends AnyFixture[T]

FutureFixture allows you to acquire resources during setup and clean up resources after the tests finish running.

FutureFixture allows you to acquire resources during setup and clean up resources after the tests finish running.

Fixtures can be local to a single test case by overriding beforeEach and afterEach, or they can be re-used for an entire test suite by extending beforeAll and afterAll.

There is no functional difference between extending FutureFixture[T] or AnyFixture[T]. The only difference is that an IDE will auto-complete Future[Unit] in the result type instead of Any.

Value parameters:
fixtureName

The name of this fixture, used for displaying an error message if beforeAll() or afterAll() fail.

See also:
class IgnoreSuite extends Annotation
object Location extends LocationMacro
Companion:
class
final class Location(val path: String, val line: Int) extends Annotation with Serializable
Companion:
object
class MUnitRunner(val cls: Class[_ <: Suite], newInstance: () => Suite) extends Runner with Filterable with Configurable
Companion:
object
Companion:
class
@EnableReflectiveInstantiation
trait Printable

Override this class to customize the default pretty-printer.

Override this class to customize the default pretty-printer.

trait Printer

Implement this trait to customize the default printer

Implement this trait to customize the default printer

Companion:
object
object Printer
Companion:
class
@RunWith(scala.Predef.classOf[munit.MUnitRunner])
abstract class Suite extends PlatformSuite

The base class for all test suites. Extend this class if you don't need the functionality in FunSuite.

The base class for all test suites. Extend this class if you don't need the functionality in FunSuite.

class Tag(val value: String) extends Tag with Annotation with Serializable
final class Test(val name: String, val body: () => Future[Any], val tags: Set[Tag], val location: Location) extends Serializable

Metadata about a single test case.

Metadata about a single test case.

Value parameters:
body

the function to be evaluated for this test case.

location

the file and line number where this test was defined.

tags

the annotated tags for this test case.

final class TestOptions(val name: String, val tags: Set[Tag], val location: Location) extends Serializable

Options used when running a test. It can be built implicitly from a String (@see munit.TestOptionsConversions)

Options used when running a test. It can be built implicitly from a String (@see munit.TestOptionsConversions)

Value parameters:
name

the test name, used in the UI and to select it with testOnly

tags

a set of munit.Tag, used to attach semantic information to a test

Companion:
object
Companion:
class
object TestValues

Values that have special treatment when evaluating values produced by tests.

Values that have special treatment when evaluating values produced by tests.

Deprecated types

@deprecated("use AfterEach instead", "1.0.0")
Deprecated
@deprecated("use BeforeEach instead", "1.0.0")
Deprecated
@deprecated("use Test instead", "1.0.0")
type GenericTest[T] = Test
Deprecated

Value members

Concrete fields

val Fail: Tag
val Flaky: Tag
val Ignore: Tag
val Only: Tag
val Slow: Tag