使用 Python 编写基本测试
起点:我们假设您已经设置了一个 basic ament_python package,并且想要向其中添加一些测试。
如果您使用的是 ament_cmake_python,请参阅 ament_cmake_python docs,了解如何使测试可发现。
测试内容和使用 colcon
的调用保持不变。
包设置
setup.py
您的 setup.py
必须在对 setup(...)
的调用中对 pytest
具有测试依赖性:
tests_require=['pytest'],
测试文件和文件夹
您的测试代码需要放在包根目录中名为“tests”的文件夹中。
任何包含您要运行的测试的文件都必须具有模式“test_FOO.py”,其中“FOO”可以替换为任何内容。
示例包布局:
awesome_ros_package/
awesome_ros_package/
__init__.py
fozzie.py
package.xml
setup.cfg
setup.py
tests/
test_init.py
test_copyright.py
test_fozzie.py
测试内容
您现在可以随心所欲地编写测试。 plenty of resources on pytest 上有很多资源,但简而言之,您可以使用 test_
前缀编写函数并包含您想要的任何断言语句。
def test_math():
assert 2 + 2 == 5 # This should fail for most mathematical systems
运行测试
有关运行测试和检查测试结果的更多信息,请参阅 关于如何从命令行 <CLI> 运行测试的教程。
特殊命令
除了 标准 colcon 测试命令 之外,您还可以使用 --pytest-args
标志从命令行指定 pytest
框架的参数。
例如,您可以指定要运行的函数的名称
colcon test --packages-select <name-of-pkg> --pytest-args -k name_of_the_test_function
要在运行测试时查看 pytest 输出,请使用以下标志:
colcon test --event-handlers console_cohesion+