Planning Phase
Brainstorm Features
What do we want our wonderful new test framework to provide?
This is my personal braindump of ideas - come up with your own ideas at home!
Command-Line Interface
[ ]
Output should show pretty colors[ ]
minispec
should always exit0
on success or non-zero on failure[ ]
minispec --version
- Print out the current version of minispec[ ]
minispec -l/--list
- Print out test names instead of running them[ ]
minispec -m/--match [Test Name Matcher]
- Run a subset of the tests[ ]
minispec -v/--verbose
- Print output from every test, even passing ones[ ]
minispec -q/--quiet
- Don’t print anything, exit 0 on success or exit 1 on failure[ ]
minispec -n/--no-local
- Don’t consider local functions when searching for tests[ ]
minispec -p/--pattern
- Provide a custom pattern used to find test methods[ ]
minispec -s/--setup
- Provide a custom pattern used to find setup methods[ ]
minispec -t/--teardown
- Provide a custom pattern used to find teardown methods[ ]
minispec -f/--formatter
- Name of output reporter formatter to use, e.g. TAP[ ]
minispec -d/--dll
- Provide a custom pattern used to auto-find DLLs[ ]
minispec -c/--config
- Provide a text Config file (default.minispec
)
Syntax DSL (Domain-Specific Language)
[ ]
Support DLLS which need to load dependencies, including if there are conflicts[ ]
Support failing if a Test method with a bool return type returnsfalse
[ ]
Support running instance methods[ ]
Invoke parent method(s) before invoking test function (if local function)[ ]
Allow for some local functions within a test function not to be run (use_
prefix)[ ]
Detect and runSetUp
andTearDown
methods before and after each run of a test case[ ]
Determine and implement a nice way of supporting parameterized tests (DDT)[ ]
Letdotnet run
run the tests if you invokeMiniSpec.Run()
Assertions & Expectations
[ ]
Should work fine withxUnit
andNUnit
andFluentAssertions
assertions[ ]
Extensibility so it’s easy to add your ownExpect()
assertions[ ]
Expect().ToEqual
[ ]
Expect().ToContain
[ ]
Expect().ToMatch
[ ]
Expect(() => { ... }).ToFail("Kaboom!")
Distribution
[ ]
Expect()
should be available on its own viaMiniSpec.Expect
[ ]
minispec.exe
should be available on its own viaMiniSpec.Console
[ ]
MiniSpec
package should install both the library and the executable[ ]
Make available via GitHub Packages[ ]
Make available via MyGet[ ]
Make available via NuGet