py.test是用于测试Python脚本的已知工具。但是,我错过了用于检测py.test的CMake宏。
在CMake池中有没有这种类型的东西?
答案 0 :(得分:1)
直接从py.test
调用CMakeLists.txt
不是非常便携,因为不同的系统命名方式完全不同,例如:
py.test # pip, as of early 2018
pytest # ditto
py.test-3 # Fedora 26 package
pytest-3 # ditto
当然,系统可能默认为版本2或3,并且可能同时安装版本2和版本。
因此,通过cmake可靠地执行正确pytest版本的简单方法是invoke pytest differently:
python3 -m pytest
(而不是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()