Changelog
- page md_tests_scripts_bats_docs_CHANGELOG
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
<a href=”https://github.com/bats-core/bats-core/compare/v1.1.0…HEAD”
>Unreleased
Fixed
improved error trace for some broken cases (#279)
[1.5.0] - 2021-10-22
Added
new command line flags (#488)
--verbose-run
: Makerun
print$output
by default-x
,--trace
: Print test commands as they are executed (likeset -x
)*
—show-output-of-passing-tests: Print output of passing tests *
—print-output-on-failure: Automatically print the value of
$output` on failed tests--gather-test-outputs-in <directory>
: Gather the output of failing and passing tests as files in directory
Experimental: add return code checks to
run
via!
/-<N>
(#367, #507)install.sh
anduninstall.sh
take an optional second parameter for the lib folder name to allow for multilib install, e.g. into lib64 (#452)add
run
flag--keep-empty-lines
to retain empty lines in${lines[@]}
(#224, a894fbfa)add
run
flag--separate-stderr
which also fills$stderr
and$stderr_lines
(#47, 5c9b173d, #507)
Fixed
don’t glob
run
’s$output
when splitting into${lines[@]}
(#151, #152, #158, #156, #281, #289)remove empty line after test with pretty formatter on some terminals (#481)
don’t run setup_file/teardown_file on files without tests, e.g. due to filtering (#484)
print final line without newline on Bash 3.2 for midtest (ERREXIT) failures too (#495, #145)
abort with error on missing flock/shlock when running in parallel mode (#496)
improved
set -u
test and fixed some unset variable accesses (#498, #501)shorten suite/file/test temporary folder paths to leave enough space even on restricted systems (#503)
Documentation
minor edits (#478)
[1.4.1] - 2021-07-24
Added
Docker image architectures amd64, 386, arm64, arm/v7, arm/v6, ppc64le, s390x (#438)
Fixed
automatic push to Dockerhub (#438)
[1.4.0] - 2021-07-23
Added
added BATS_TEST_TMPDIR, BATS_FILE_TMPDIR, BATS_SUITE_TMPDIR (#413)
added checks and improved documentation for
$BATS_TMPDIR
(#410)the docker container now uses tini as the container entrypoint to improve signal forwarding (#407)
script to uninstall bats from a given prefix (#400)
replace preprocessed file path (e.g.
/tmp/bats-run-22908-NP0f9h/bats.23102.src
) with original filename in stdout/err (but not FD3!) (#429)print aborted command on SIGINT/CTRL+C (#368)
print error message when BATS_RUN_TMPDIR could not be created (#422)
Documentation
added tutorial for new users (#397)
fixed example invocation of docker container (#440)
minor edits (#431, #439, #445, #463, #464, #465)
Fixed
fix
bats_tap_stream_unknown: command not found
with pretty formatter, when writing non compliant extended output (#412)avoid collisions on
$BATS_RUN_TMPDIR
with--no-tempdir-cleanup
and docker by usingmktemp
additionally to PID (#409)pretty printer now puts text that is printed to FD 3 below the test name (#426)
rm semaphores/slot-: No such file or directory
in parallel mode on MacOS (#434, #433)fix YAML blocks in TAP13 formatter using
...
instead of---
to start a block (#442)fixed some typos in comments (#441, #447)
ensure
/code
exists in docker container, to make examples work again (#440)also display error messages from free code (#429)
npm installed version on Windows: fix broken internal LIBEXEC paths (#459)
[1.3.0] - 2021-03-08
Added
custom test-file extension via
BATS_FILE_EXTENSION
when searching for test files in a directory (#376)TAP13 formatter, including millisecond timing (#337)
automatic release to NPM via Github Actions (#406)
Documentation
added documentation about overusing
run
(#343)improved documentation of
load
(#332)
Changed
recursive suite mode will follow symlinks now (#370)
split options for (file-)
--report-formatter
and (stdout)--formatter
(#345)WARNING: This changes the meaning of
--formatter junit
. stdout will now show unified xml instead of TAP. From now on, please use--report-formatter junit
to obtain the.xml
report file!
removed
--parallel-preserve-environment
flag, as this is the default behavior (#324)moved CI from Travis/Appveyor to Github Actions (#405)
preprocessed files are no longer removed if
--no-tempdir-cleanup
is specified (#395)
Documentation
moved documentation to readthedocs
Fixed
Correctness
fix internal failures due to unbound variables when test files use
set -u
(#392)fix internal failures due to changes to
$PATH
in test files (#387)fix test duration always being 0 on busybox installs (#363)
fix hangs on CTRL+C (#354)
make
BATS_TEST_NUMBER
count per file again (#326)include
lib/
in npm package (#352)
Performance
don’t fork bomb in parallel mode (#339)
preprocess each file only once (#335)
avoid running duplicate files n^2 times (#338)
Documentation
fix documentation for
--formatter junit
(#334)fix documentation for
setup_file
variables (#333)fix link to examples page (#331)
fix link to “File Descriptor 3” section (#301)
[1.2.1] - 2020-07-06
Added
JUnit output and extensible formatter rewrite (#246)
load
function now reads from absolute and relative paths, and $PATH (#282)Beginner-friendly examples in /docs/examples (#243)
@peshay’s
bats-file
fork contributed tobats-core/bats-file
(#276)
Changed
Duplicate test names now error (previous behaviour was to issue a warning) (#286)
Changed default formatter in Docker to pretty by adding
ncurses
to Dockerfile, override with--tap
(#239)Replace “readlink -f” dependency with Bash solution (#217)
[1.2.0] - 2020-04-25
Support parallel suite execution and filtering by test name.
Added
docs/CHANGELOG.md and docs/releasing.md (#122)
The
-f, --filter
flag to run only the tests matching a regular expression (#126)Optimize stack trace capture (#138)
--jobs n
flag to support parallel execution of tests with GNU parallel (#172)
Changed
AppVeyor builds are now semver-compliant (#123)
Add Bash 5 as test target (#181)
Always use upper case signal names to avoid locale dependent err… (#215)
Fix for tests reading from stdin (#227)
Fix wrong line numbers of errors in bash < 4.4 (#229)
Remove preprocessed source after test run (#232)
<a href=”https://github.com/bats-core/bats-core/compare/v1.0.2…v1.1.0” >1.1.0</a> - 2018-07-08
This is the first release with new features relative to the original Bats 0.4.0.
Added
The
-r, --recursive
flag to scan directory arguments recursively for*.bats
files (#109)The
contrib/rpm/bats.spec
file to build RPMs (#111)
Changed
Travis exercises latest versions of Bash from 3.2 through 4.4 (#116, #117)
Error output highlights invalid command line options (#45, #46, #118)
Replaced
echo
withprintf
(#120)
Fixed
Fixed
BATS_ERROR_STATUS
getting lost whenbats_error_trap
fired multiple times under Bash 4.2.x (#110)Updated
bin/bats
symlink resolution, handling the case on CentOS where/bin
is a symlink to/usr/bin
(#113, #115)
<a href=”https://github.com/bats-core/bats-core/compare/v1.0.1…v1.0.2” >1.0.2</a> - 2018-06-18
Fixed sstephenson/bats#240, whereby
skip
messages containing parentheses were truncated (#48)Doc improvements:
Docker usage (#94)
Better README badges (#101)
Better installation instructions (#102, #104)
Packaging/installation improvements:
package.json update (#100)
Moved
libexec/
files tolibexec/bats-core/
, improvedinstall.sh
(#105)
<a href=”https://github.com/bats-core/bats-core/compare/v1.0.0…v1.0.1” >1.0.1</a> - 2018-06-09
Fixed a
BATS_CWD
bug introduced in #91 whereby it was set to the parent ofPWD
, when it should’ve been set toPWD
itself (#98). This caused file names in stack traces to contain the basename ofPWD
as a prefix, when the names should’ve been purely relative toPWD
.Ensure the last line of test output prints when it doesn’t end with a newline (#99). This was a quasi-bug introduced by replacing
sed
withwhile
in #88.
<a href=”https://github.com/bats-core/bats-core/compare/v0.4.0…v1.0.0” >1.0.0</a> - 2018-06-08
1.0.0
generally preserves compatibility with0.4.0
, but with some Bash compatibility improvements and a massive performance boost. In other words:all existing tests should remain compatible
tests that might’ve failed or exhibited unexpected behavior on earlier versions of Bash should now also pass or behave as expected
Changes:
Added support for Docker.
Added support for test scripts that have the unofficial strict mode enabled.
Improved stability on Windows and macOS platforms.
Massive performance improvements, especially on Windows (#8)
Workarounds for inconsistent behavior between Bash versions (#82)
Workaround for preserving stack info after calling an exported function under Bash < 4.4 (#87)
Fixed TAP compliance for skipped tests
Added support for tabs in test names.
bin/bats
andinstall.sh
now work reliably on Windows (#91)
<a href=”https://github.com/bats-core/bats-core/compare/v0.3.1…v0.4.0” >0.4.0</a> - 2014-08-13
Improved the display of failing test cases. Bats now shows the source code of failing test lines, along with full stack traces including function names, filenames, and line numbers.
Improved the display of the pretty-printed test summary line to include the number of skipped tests, if any.
Improved the speed of the preprocessor, dramatically shortening test and suite startup times.
Added support for absolute pathnames to the
load
helper.Added support for single-line
@test
definitions.Added bats(1) and bats(7) manual pages.
Modified the
bats
command to default to TAP output when the$CI
variable is set, to better support environments such as Travis CI.
<a href=”https://github.com/bats-core/bats-core/compare/v0.3.0…v0.3.1” >0.3.1</a> - 2013-10-28
Fixed an incompatibility with the pretty formatter in certain environments such as tmux.
Fixed a bug where the pretty formatter would crash if the first line of a test file’s output was invalid TAP.
<a href=”https://github.com/bats-core/bats-core/compare/v0.2.0…v0.3.0” >0.3.0</a> - 2013-10-21
Improved formatting for tests run from a terminal. Failing tests are now colored in red, and the total number of failing tests is displayed at the end of the test run. When Bats is not connected to a terminal (e.g. in CI runs), or when invoked with the
--tap
flag, output is displayed in standard TAP format.Added the ability to skip tests using the
skip
command.Added a message to failing test case output indicating the file and line number of the statement that caused the test to fail.
Added “ad-hoc” test suite support. You can now invoke
bats
with multiple filename or directory arguments to run all the specified tests in aggregate.Added support for test files with Windows line endings.
Fixed regular expression warnings from certain versions of Bash.
Fixed a bug running tests containing lines that begin with
-e
.
<a href=”https://github.com/bats-core/bats-core/compare/v0.1.0…v0.2.0” >0.2.0</a> - 2012-11-16
Added test suite support. The
bats
command accepts a directory name containing multiple test files to be run in aggregate.Added the ability to count the number of test cases in a file or suite by passing the
-c
flag tobats
.Preprocessed sources are cached between test case runs in the same file for better performance.
<a href=”https://github.com/bats-core/bats-core/commits/v0.1.0” >0.1.0</a> - 2011-12-30
Initial public release.