Explicit Test Names

For dynamic tests, Konsist can't obtain the current test's name. Test name may be correctly displayed in the IDE, however, the testName argument should be provided to enable:

  • Correct test names are displayed in the log when the test is failing

  • Test suppression (See Suppress Konsist Test)

The testName argument is should be passed to assertX methods such as assertTrue , assertFalse etc. Let's look at the code:

Konsist.scopeFromProject()
    .classes()
    .assertTrue(testName = "My test name") { ... } //passed test name

Here is the summary of test frameworks:

Testing FrameworkDeterminationPass testName?

JUnit4

static

Not required

JUnit5

static

Not required

JUnit5

dynamic

Recommended

Kotest

dynamic

Recommended

Here is a concrete implementation passing he testName argument for each test Framework:

JUnit 5 introduced native support for dynamic tests, however, it also supports static tests. For static test testName does not have to be passed as it can be internally retrieved by Konsist.

@Test
fun myTest() {
    Konsist.scopeFromProject()
        .classes()
        .assertTrue { ... }
}

Last updated