Bats Core Versions Save

Bash Automated Testing System

v1.6.0

2 years ago

Bats 1.6.0

Released: 2022-02-24

Added:

  • new flag --code-quote-style (and $BATS_CODE_QUOTE_STYLE) to customize quotes around code blocks in error output (#506)
  • an example/regression test for running background tasks without blocking the test run (#525, #535)
  • bats_load_library for loading libraries from the search path $BATS_LIB_PATH (#548)

Fixed:

  • improved error trace for some broken cases (#279)
  • removed leftover debug file /tmp/latch in selftest suite (single use latch) (#516)
  • fix recurring errors on CTRL+C tests with NPM on Windows in selftest suite (#516)
  • fixed leaking of local variables from debug trap (#520)
  • don't mark FD3 output from teardown_file as <failure> in junit output (#532)
  • fix unbound variable error with Bash pre 4.4 (#550)

Documentation

  • remove links to defunct freenode IRC channel (#515)
  • improved grammar (#534)
  • fixed link to TAP spec (#537)

v1.5.0

2 years ago

Bats 1.5.0

Released: 2021-10-22

Added:

  • new command line flags (#488)
    • --verbose-run: Make run print $output by default
    • -x, --trace: Print test commands as they are executed (like set -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 and uninstall.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)

v1.4.1

2 years ago

Bats 1.4.1

Released: 2021-07-24

Added:

  • Docker image architectures amd64, 386, arm64, arm/v7, arm/v6, ppc64le, s390x (#438)

Fixed:

  • automatic push to Dockerhub (#438)

v1.4.0

2 years ago

Bats 1.4.0

Released: 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 using mktemp 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)

v1.3.0

3 years ago

Bats 1.3.0

Released: 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

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)

v1.2.1

3 years ago

Released: 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 to bats-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)

v1.2.0

4 years ago

Released: 2020-04-25

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)

v1.1.0

5 years ago

Released: 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 with printf (#120)

Fixed:

  • Fixed BATS_ERROR_STATUS getting lost when bats_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)

v1.0.2

5 years ago

Released: June 18, 2018

  • 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 to libexec/bats-core/, improved install.sh (#105)

v1.0.1

5 years ago

Released: June 9, 2018

  • Fixed a BATS_CWD bug introduced in #91 whereby it was set to the parent of PWD, when it should've been set to PWD itself (#98). This caused file names in stack traces to contain the basename of PWD as a prefix, when the names should've been purely relative to PWD.

  • 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 with while in #88.