utest icon indicating copy to clipboard operation
utest copied to clipboard

Support a more programmatic way to produce tests

Open lefou opened this issue 10 months ago • 2 comments

Currently, all tests and sub-tests need to written explicitly. This always bugs me, as it makes writing test matrices unnecessary burdensome. You either need to move test matrix processing into the test, that means, test units are large and test failures don't communicate which point in the matrix is failing, or you need to move the matrix outside of the tests, resulting in much coding infrastructure involving generic classes/traits and many explicit test objects extends TestSuite for each and any test matrix value.

The naive approache doesn't work:


for {
  i <- Seq(1,2,3)
} yield test("testing-${i}") {
  assert(...)
}

Maybe, we can invent some API, that allows this kind of generic testing.

lefou avatar Feb 15 '25 10:02 lefou

This might require using macro or scala-plugin to unroll the for-yield loop, which might be not a simple job?

sequencer avatar Apr 16 '25 06:04 sequencer

I mean, it also doesn't work for Seq(1,2,3).map(n => test("testing-${n}") { ... ) or .foreach.

lefou avatar Apr 23 '25 11:04 lefou