CMake py.test检测?

时间:2017-11-22 19:32:23

标签: cmake pytest

py.test是用于测试Python脚本的已知工具。但是,我错过了用于检测py.test的CMake宏。

在CMake池中有没有这种类型的东西?

1 个答案:

答案 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.testpytest或......)

如果您想在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()