0.15.0
Pre-release
Pre-release
Almost certainly the last pre-release before v1.0.0 (which almost certainly will have very few changes of its own).
Not a huge number of changes that a user would notice, but quite a bit under the covers:
- Added a (very brief) README to the packages
- Resolved most of the TODOs in the code:
- Slightly improved stack traces in failure results & fixed an awkward
throw new Exception
occurrence when an implicit assertion fails (e.g. when usingThenThrows(ex => ...)
but no exception is thrown). - Improved error message when an unexpected exception is thrown by a "When" clause
- Localisation basics - most string hard-coding replaced by resources in a resource file. Should I ever be lucky enough that it becomes an issue, localisation should be relatively straightforward.
- A bit more (probably unneeded, but easy and good practice) robustness in TestRun class in the VSTest adapter - in case of bad test runner behaviour
- (Quickly looked into parallelisation of test discovery in VSTest adapter, but decided against it)
- Slightly improved stack traces in failure results & fixed an awkward
- Reviewed abstractions for flexibility & stability
- Tweaked the ITraitProvider interface to make it a little more flexible
- Changed Trait to ITrait. Might be overkill, but meh
- Replaced Description property of ITestCase & IAssertion with IFormattable interface inheritance. Admittedly a bit of a calculated risk. IFormattable may be needlessly complex (not sure format strings for these will be useful*). However, a Description prop is almost certainly not going to be flexible enough for the amount of control I want to offer, so I think this is a slightly better bet for a stable abstraction. I did briefly consider if it should still have a Description prop, but it should be an IFormattable not a string, but iI think that would be overly complex compared to just inheriting IFormattable directly.
Worth noting a couple of things not included in the packages at all have also been done alongside this stuff:
- Added very basic performance benchmark (not yet invoked as part of validation build)
- A number documentation improvements
* then again, in a test where e.g. we're summing two numbers (so have two int-valued pre-reqs), being able to do something like specify a @x + @y
format string (e.g. in .UsingConfiguration(c => c.ResultFormat = "{0} for test case {1:@x + @y}")
) might be nice?