I'm experimenting with uTest for testing, because the ability to run test both JVM + JS, automatically, is IMO a "killer feature".
I'm going to raise some aspects of uTest I don't (currently) like, or perhaps don't understand here, because I think many uTest users are probably Scala.js users, and I thought I'd ask about my issues first, rather than raise github issues right away.
I have 3 main gripes, which I will describe with reference to this uTest output:
> root/test
[info] Compiling 1 Scala source to C:\Users\ben\workspace\prickle\target\scala-2.10\test-classes...
[info] 1/5 prickle.PickleTests.caseclass.encoding Failure(utest.AssertionError: assert(expected...
[info] 2/5 prickle.PickleTests.caseclass.unpickling Success
[info] 3/5 prickle.PickleTests.caseclass.toleratesextradata Success
[info] 4/5 prickle.PickleTests.caseclass Success
[info] 5/5 prickle.PickleTests. Success
[info] -----------------------------------Results-----------------------------------
[info] PickleTests$ Success
[info] caseclass Success
[info] encoding Failure(utest.AssertionError: assert(expected...
[info] unpickling Success
[info] toleratesextradata Success
[info] Tests: 5
[info] Passed: 4
[info] Failed: 1
1. Missing/truncated output on assertion fails
uTest emits 14 lines of output, but the info that is key to understanding the failure is missing. Surely, *detailing failed assertions* is at the heart of what a test runner should do?
To see the full fail message, do I have to type this awkward command 'test-only -- --trace=true', and then get a *huge* unwanted stack trace?
2. Cannot create test names with whitespace. Why??
For some reason, uTest wont allow me to use descriptive names for my tests, such as 'case class with self-reference'
3. Success output for grouping structures that don't test anything
In the output above, 4 of the 14 lines (copied below) are for non-test grouping structures that contain no assertions. And given that they group a failed leaf node, why report 'success?
[info] 4/5 prickle.PickleTests.caseclass Success
[info] 5/5 prickle.PickleTests. Success
[info] PickleTests$ Success
[info] caseclass Success
Do I not get something about how uTest is supposed to be used?
-Ben