Fish Shell:
Tests Schreiben

Wie:

Fish hat kein eingebautes Test-Framework wie einige andere Programmierumgebungen. Sie können jedoch einfache Testskripte schreiben, die Behauptungen (Assertions) nutzen, um das Verhalten Ihrer Funktionen zu überprüfen. Zusätzlich können Sie Drittanbieter-Tools wie fishtape für eine umfassendere Testumgebung nutzen.

Beispiel 1: Einfaches Testskript

Beginnen wir mit einer einfachen Funktion in Fish, die die Summe zweier Zahlen berechnet:

function add --description 'Zwei Zahlen addieren'
    set -l sum (math $argv[1] + $argv[2])
    echo $sum
end

Sie können ein einfaches Testskript für diese Funktion wie folgt schreiben:

function test_add
    set -l result (add 3 4)
    if test $result -eq 7
        echo "test_add bestanden"
    else
        echo "test_add fehlgeschlagen"
    end
end

test_add

Die Ausführung dieses Skripts würde ausgeben:

test_add bestanden

Beispiel 2: Verwendung von Fishtape

Für eine robustere Testlösung können Sie fishtape, einen TAP-produzierenden Testrunner für Fish, verwenden.

Installieren Sie zunächst fishtape, falls Sie dies noch nicht getan haben:

fisher install jorgebucaran/fishtape

Erstellen Sie als Nächstes eine Testdatei für Ihre add-Funktion, z.B. add_test.fish:

test "Addieren von 3 und 4 ergibt 7"
    set result (add 3 4)
    echo "$result" | fishtape
end

Um den Test auszuführen, verwenden Sie den folgenden Befehl:

fishtape add_test.fish

Eine beispielhafte Ausgabe könnte wie folgt aussehen:

TAP version 13
# Addieren von 3 und 4 ergibt 7
ok 1 - test_add bestanden

Das teilt Ihnen mit, dass der Test erfolgreich war. fishtape ermöglicht es Ihnen, detailliertere Tests zu strukturieren und bietet informative Ausgaben, was das Debuggen erleichtert und eine umfassende Testabdeckung für Ihre Fish-Skripte fördert.