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

  1. Zainstaluj Zero Install: https://get.0install.net/#windows

../_images/zero-install-setup.png

Przycisk instalacji Zero Install.

  1. Otwórz konsolę systemową i za pomocą Zero Install dodaj OMTT:

    0install add omtt https://apps.chyla.org/omtt.xml
    
  2. OMTT został dodany, może zostać uruchomiony poleceniem:

    0install run omtt
    

Linux

  1. Zainstaluj Zero Install: https://get.0install.net/#linux-ubuntu

  2. Otwórz konsolę systemową i za pomocą Zero Install dodaj OMTT:

    0install add omtt https://apps.chyla.org/omtt.xml
    
  3. 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