テストの作成

MicroPython のテストは tests/ ディレクトリにあります。以下は、主なディレクトリと run-tests.py 実行スクリプトのリストです

.
 ├── basics
 ├── extmod
 ├── float
 ├── micropython
 ├── run-tests.py
 ...

テストを分類するためのサブフォルダーがあります。テストを追加するには、既存のフォルダーのどれかか新しいフォルダーに新しいファイルを作成します。このテストフォルダーの外でカスタムテストを行うこともでき、カスタムポートにはこれを推奨します。

たとえば tests/unix/ サブディレクトリに print.py ファイルを作成し、次のコードを追加します。

def print_one():
    print(1)

print_one()

テストを実行すると、追加したテストがテスト出力に表示されます:

$ cd ports/unix
$ make tests
skip  unix/extra_coverage.py
pass  unix/ffi_callback.py
pass  unix/ffi_float.py
pass  unix/ffi_float2.py
pass  unix/print.py
pass  unix/time.py
pass  unix/time2.py

テストは、テストターゲットからの出力を CPython からの出力と比較することによって実行されます。したがって、どのテストでも print 関数を使ってテスト結果を示す必要があります。

CPython と比較できないテスト(つまり micropython 固有の機能)の場合、比較用の正解として使う .py.exp ファイルを提供できます。

テストを実行するもう1つの方法は、Unix ポート以外のターゲットで実行する場合に役立ちます。その実行方法とは次のとおりです:

$ cd tests
$ ./run-tests.py

ボード上で実行するには次のようにします:

$ ./run-tests.py --target minimal --device /dev/ttyACM0

また、特定のテストセット(ディレクトリなど)のみを実行するには次のようにします。

$ ./run-tests.py -d basics
$ ./run-tests.py float/builtin*.py