编写测试¶
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-specific 功能),你可以提供一个 .py.exp
文件,这个文件将会用于比较。
当运行在其他适配端上时,这种运行测试的方式很有用:
$ cd tests
$ ./run-tests.py
然后在一个开发板上运行:
$ ./run-tests.py --target minimal --device /dev/ttyACM0
然后运行指定的测试集(某一个测试子目录):
$ ./run-tests.py -d basics
$ ./run-tests.py float/builtin*.py