izumi icon indicating copy to clipboard operation
izumi copied to clipboard

[distage-testkit] Nesting of `should` verbs

Open ncreep opened this issue 2 years ago • 2 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

ncreep avatar Nov 02 '22 14:11 ncreep

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.

pshirshov avatar Nov 02 '22 21:11 pshirshov

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).

ncreep avatar Nov 06 '22 20:11 ncreep