7mind / izumi

Productivity-oriented collection of lightweight fancy stuff for Scala toolchain

Home Page:https://izumi.7mind.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[distage-testkit] Nesting of `should` verbs

ncreep opened this issue · comments

Hi,

It seems that distage-testkit doesn't adopt vanilla Scalatest's behavior when nesting should/must/can verbs and omits some information when nesting.

For example, consider the following test:

"a" should {
  "b" can {
    "c" in {
      1 shouldBe 1
    }

    "d" in {
      2 shouldBe 2
    }
  }
}

When running this in plain ScalaTest the output would be:

[info] a
[info]   should b
[info]   - can c
[info]   - can d

With the distage-testkit the output will be:

[info] - b can c
[info] - b can d

Note how the information about a is completely missing, and everything is flattened losing the nesting of the code.

Is this behavior intentional?
Will it be complicated to reproduce ScalaTest's behavior? If it's not too big of a change, I can try to tackle it on my own and open a pull request.

Thanks

Will it be complicated to reproduce ScalaTest's behavior?

Well, it's definitely doable, though scalatest dsl isn't a trivial thing, so no wonder we didn't pass it through perfectly.

Don't forget that we do not preserve scalatest hierarchies because of the parallel runs and reporter protocol limitations. But we can certainly preserve the whole descriptions. There will be no tree, but reports would look like

[info] - a should b can c
[info] - a should b can d

I can try to tackle it on my own and open a pull request.

Please do.

Thanks for the quick response.
Not losing information might be good enough, I guess.

I might try to tackle this at some point. Will let you know if I stumble upon any issues doing that (might take some time though).