Release 0.20
🐛 Bugfix
Test doubles used in subshells
Assertions on spies now work even when the call happens inside a subshell.
bash
function test_spy_in_subshell() {
spy date
(
date
)
assert_have_been_called date
}🔧 New features
Interpolating arguments in test names
Data providers can now interpolate their arguments directly into the test name. Combine it with the new @ prefix to improve readability.
bash
# @data_provider fizz_numbers
function test_returns_fizz_when_multiple_of_::1::_like_::2::_given() {
# ...
}
function fizz_numbers() {
echo 3 4
echo 3 6
}Running example_test.sh
✓ Passed: Returns fizz when multiple of '3' like '4' given
✓ Passed: Returns fizz when multiple of '3' like '6' givenNew assertions for test doubles
You can ensure that a spy was not executed using assert_not_called and check arguments for specific invocations with an optional index in assert_have_been_called_with.
bash
function test_success() {
spy ps
ps foo
ps bar
assert_have_been_called_with "foo" ps 1
assert_have_been_called_with "bar" ps 2
assert_not_called ls
}Snapshot comparison ignoring colors
assert_match_snapshot_ignore_colors allows validating colored output without caring about ANSI codes.
bash
function test_success() {
assert_match_snapshot_ignore_colors "$(printf '\e[31mHello\e[0m World!')"
}Parallel tests on Windows
Parallel execution is now enabled on Windows, greatly reducing running time for large suites.
🌾 Miscellaneous
- Deprecate
# data_providerin favor of# @data_provider - Improve
helper::find_total_testsandrunner::parse_result_syncperformance
See the full changelog in GitHub