There is one very useful feature in ScalaTest that I hope to see in any testing framework, and that is custom test fixures (other than before / after each). One use-case is injecting a transaction to each test-case that will be rolled-back at the end of the test-case; another use-case is running a verification / assertion code after each test case (using “afterEach” fails the entire suite instead of just the single test case).
Another less common but still useful feature is dynamically creating test cases. I’ve used it to generate tests based on files (each representing a test case), and also to create “chained” test cases (using DelayedInit
).
One last thing regarding build tools - I’m using Gradle as my main Scala build tool, and unfortunately it is not the most compatible with ScalaTest. I’d hope that a new testing framework would be more compatible with it. You can read about it here.