Bats Operations: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 16: Line 16:
=Loading a Library to be Tested into a .bats Test=
=Loading a Library to be Tested into a .bats Test=


Assuming that the library you want to test is called blue.shlib, create a blue-library.bash file in the directory that contain the .bats tests. If the library is located at a fixed relative location to the .bats test files, use this arrangement:
Assuming that the library you want to test is called 'blue.shlib', create a 'blue-library.bash' file in the directory that contain the .bats tests. If the library is located at a fixed relative location to the .bats test files, use this arrangement:
<syntaxhighlight lang='bash'>
<syntaxhighlight lang='bash'>
source ${BATS_TEST_DIRNAME}/[...]/blue.shlib
source ${BATS_TEST_DIRNAME}/[...]/blue.shlib

Revision as of 16:54, 3 October 2019

Internal

Script to Run all .bats Tests from a Directory

#!/usr/bin/env bash

for i in $(dirname $0)/*.bats; do
    echo "running $(basename ${i}) tests ..."
    bats $i
done

Loading a Library to be Tested into a .bats Test

Assuming that the library you want to test is called 'blue.shlib', create a 'blue-library.bash' file in the directory that contain the .bats tests. If the library is located at a fixed relative location to the .bats test files, use this arrangement:

source ${BATS_TEST_DIRNAME}/[...]/blue.shlib

Otherwise, you can use an absolute path, but that is more fragile.

From each .bats test that wants to test functionality from that library:

load blue-library