Output Match Testing Tool¶
OMTT pozwala sprawdzić poprawność działania programu/skryptu. Narzędzie uruchamia testowany system z określonym wejściem i sprawdza czy wypisywane dane oraz kod wyjścia zgadzają się z założeniami określonymi w teście.
Instalacja¶
Zalecam instalację za pomocą Zero Install - zdecentralizowanego systemu instalacji oprogramowania. Zero Install pobierze OMTT w bezpieczny sposób i zadba o regularne aktualizacje.
Kod źródłowy oraz pakiety binarne dostępne są na stronie projektu w serwisie GitHub.
Windows¶
Zainstaluj Zero Install: https://get.0install.net/#windows
Otwórz konsolę systemową i za pomocą Zero Install dodaj OMTT:
0install add omtt https://apps.chyla.org/omtt.xml
OMTT został dodany, może zostać uruchomiony poleceniem:
0install run omtt
Linux¶
Zainstaluj Zero Install: https://get.0install.net/#linux-ubuntu
Otwórz konsolę systemową i za pomocą Zero Install dodaj OMTT:
0install add omtt https://apps.chyla.org/omtt.xml
OMTT został dodany, może zostać uruchomiony poleceniem:
0install run omtt
Możesz utworzyć alias polecenia, do pliku
~/.bashrc
dopisz na końcu:alias omtt='0install run omtt'
Struktura testu¶
Każdy test składa się z wejścia oraz bloków weryfikujących wyjście.
Wejście umieszcza się w bloku RUN WITH INPUT
, przykład:
RUN
WITH INPUT
Hello world!
Pełne sprawdzenie standardowego wyjścia określa się w bloku EXPECT OUTPUT
(sprawdzane są również białe znaki - np. spacje) , przykład:
EXPECT OUTPUT
Hello world!
Częściowe sprawdzenie standardowego wyjścia określa się w bloku EXPECT IN OUTPUT
(sprawdzane są również białe znaki - np. spacje) , przykład:
EXPECT IN OUTPUT
Hello
EXPECT IN OUTPUT
world!
Sprawdzenie kodu wyjścia określa się w bloku EXPECT EXIT CODE
, przykład:
EXPECT EXIT CODE 0
Przykład kompletnego testu dla programu cat
:
RUN
WITH INPUT
Hello world!
EXPECT OUTPUT
Hello world!
EXPECT EXIT CODE 0
W jednym teście bloków sprawdzających może być wiele. Omówienie każdego bloku wraz z przykładami znajduje się w pliku README.md
Uruchomienie testu¶
Przykład uruchomienia testu dla programu¶
Przykład polecenia uruchamiającego test znajdujący się w pliku cat-will_print_input_and_exit_with_zero.omtt
dla programu cat
:
0install run omtt --sut /bin/cat cat-will_print_input_and_exit_with_zero.omtt
Przykład uruchomienia testu dla skryptu wymagającego interpretera¶
Przykład polecenia uruchamiającego test znajdujący się w pliku python-hello.omtt
dla skryptu napisanego w języku Python:
0install run omtt --interpreter /usr/bin/python3 --sut hello.py python-hello.omtt