乐鑫技术交流
直播中

李巍

7年用户 1436经验值
私信 关注
[问答]

请问如何使用pytest_embedded进行测试?

在参考了https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/contribute/esp-idf-tests-with-pytest.html这个文档和手动尝试以后,我仍然无法成功允许example中的测试脚本

环境:win11,vscode,esp-idf插件,5.2.1 release
install.bat --enable-pytest 正常执行

测试有:
1:使用实际产品的板子,芯片是esp32s3,尝试了console这个案例,执行pytest .pytest_console.py 后立即显示第一个测试失败,后面超时全部失败
2:使用esp32c3 wroom kit,尝试了hello_world示例, pytest -s .pytest_hello_world.py 或 pytest -s .pytest_hello_world.py --target esp32c3 都是一样的,立即显示第一个测试失败,后面超时全部失败
显然脚本没有读取到idf监视器输出的日志
所有的尝试在使用idf监视器时都是正常打印日志的,烧写固件都是正常的

我对pytest_embedded如何工作的有以下疑问
1:他会或者需要自动烧写固件吗
2:我知道它是基于串口的输入输出进行判断的,是否意味着只要idf监视器正常,他就可以正常工作

目前我的需求很简单:
1:启动2s内打印system init success
2:启动30s内打印got ip:xxxx
3:在打印uart485_read:时,2s内打印uart485 read ok
4:保存串口日志用于报错时分析

请帮助我解决这个问题


回帖(1)

颜立歆

2024-7-2 16:44:45
以下是一些基本步骤和建议,以帮助您设置和运行测试:

1. **安装 ESP-IDF**: 确保您已经安装了 ESP-IDF,并且已经按照文档使用 `install.bat` 或 `install.sh` 启用了 pytest。

2. **环境配置**: 在 VSCode 中,确保您已经安装了 ESP-IDF 插件,并且配置了正确的 IDF 路径。

3. **创建测试脚本**: 根据 ESP-IDF 的文档,创建测试脚本。通常,测试脚本会以 `.pytest_` 开头,例如 `.pytest_hello_world.py`。

4. **连接硬件**: 确保您的 ESP32 或 ESP32-S3 开发板已经连接到计算机,并且驱动程序安装正确。

5. **运行测试**:
   - 打开命令行或终端。
   - 导航到您的测试脚本所在的目录。
   - 使用 pytest 运行测试,例如:
     ```bash
     pytest .pytest_hello_world.py
     ```

6. **调试测试**:
   - 如果测试失败,查看 pytest 提供的错误信息和日志,以确定问题所在。
   - 检查您的硬件连接是否稳定,确保开发板已经进入正确的测试模式。
   - 检查测试脚本是否正确配置了测试环境和测试用例。

7. **超时问题**: 如果测试超时,可能需要检查测试脚本中的超时设置是否合适,或者开发板的响应时间是否正常。

8. **日志输出**: 使用 `-s` 参数运行 pytest 可以获取更多的输出信息,这有助于调试:
   ```bash
   pytest -s .pytest_hello_world.py
   ```

9. **更新和兼容性**: 确保您的 ESP-IDF 和相关工具链是最新的,以避免兼容性问题。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分