直接py.test从 a调用CMakeLists.txt不太可移植,因为不同的系统对它的命名完全不同,例如:
py.test # pip, as of early 2018
pytest # ditto
py.test-3 # Fedora 26 package
pytest-3 # ditto
Run Code Online (Sandbox Code Playgroud)
当然,系统可能默认为版本 2 或 3,并且可能同时安装版本 2 和 3。
因此,通过 cmake 可靠执行正确的 pytest 版本的一个简单方法是以不同的方式调用 pytest:
python3 -m pytest
Run Code Online (Sandbox Code Playgroud)
(而不是py.test或pytest或...)
如果你想在 cmake 中测试 pytest 包是否可用,你可以使用 进行测试execute_process(),例如:
execute_process(COMMAND python3 -m pytest --version
OUTPUT_VARIABLE PYTEST_output
ERROR_VARIABLE PYTEST_error
RESULT_VARIABLE PYTEST_result)
if(${PYTEST_result} UNEQUAL 0)
message(SEND_ERROR "Pytest package not available: ${PYTEST_error}")
endif()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
642 次 |
| 最近记录: |