70 lines
2.2 KiB
Makefile
70 lines
2.2 KiB
Makefile
# handle testing with pytest
|
|
#
|
|
# Feature: pytest
|
|
# Usage: USES=pytest[:4]
|
|
#
|
|
# It implies USES=python:test automatically if no USES=python has been
|
|
# specified yet
|
|
#
|
|
# It provides the following additional variables to set by the ports:
|
|
#
|
|
# PYTEST_ARGS additional args to pytest (defaults to empty).
|
|
# PYTEST_IGNORED_TESTS lists of `pytest -k` patterns of tests to ignore
|
|
# (defaults to empty). For tests which are not
|
|
# expected to pass, such as ones requiring a database
|
|
# access.
|
|
# PYTEST_BROKEN_TESTS lists of `pytest -k` patterns of tests to ignore
|
|
# (defaults to empty). For broken tests which require
|
|
# fixing.
|
|
#
|
|
# The following variables may be set by the user:
|
|
#
|
|
# PYTEST_ENABLE_IGNORED_TESTS enable tests which are otherwise ignored by
|
|
# PYTEST_IGNORED_TESTS.
|
|
# PYTEST_ENABLE_BROKEN_TESTS enable tests which are otherwise ignored by
|
|
# PYTEST_BROKEN_TESTS.
|
|
# PYTEST_ENABLE_ALL_TESTS enable tests which are otherwise ignored by
|
|
# PYTEST_IGNORED_TESTS and PYTEST_BROKEN_TESTS.
|
|
#
|
|
# MAINTAINER: amdmi3@FreeBSD.org
|
|
|
|
.if !defined(_INCLUDE_USES_PYTEST_MK)
|
|
_INCLUDE_USES_PYTEST_MK= yes
|
|
|
|
. if !${USES:Mpython*}
|
|
python_ARGS= test
|
|
. include "${USESDIR}/python.mk"
|
|
. endif
|
|
|
|
. if empty(pytest_ARGS)
|
|
TEST_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}pytest>=0:devel/py-pytest@${PY_FLAVOR}
|
|
. elif ${pytest_ARGS} == "4"
|
|
TEST_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}pytest4>=0:devel/py-pytest4@${PY_FLAVOR}
|
|
. else
|
|
IGNORE= Incorrect 'USES+=pytest:${pytest_ARGS}' expecting 'USES+=pytest[:4]'
|
|
. endif
|
|
|
|
PYTEST_IGNORED_TESTS?= # empty
|
|
PYTEST_BROKEN_TESTS?= # empty
|
|
PYTEST_ARGS?= # empty
|
|
|
|
_PYTEST_ALL_IGNORED_TESTS?= # empty
|
|
. if !defined(PYTEST_ENABLE_IGNORED_TESTS) && !defined(PYTEST_ENABLE_ALL_TESTS)
|
|
_PYTEST_ALL_IGNORED_TESTS+= ${PYTEST_IGNORED_TESTS}
|
|
. endif
|
|
. if !defined(PYTEST_ENABLE_BROKEN_TESTS) && !defined(PYTEST_ENABLE_ALL_TESTS)
|
|
_PYTEST_ALL_IGNORED_TESTS+= ${PYTEST_BROKEN_TESTS}
|
|
. endif
|
|
|
|
_PYTEST_FILTER_EXPRESSION= ${_PYTEST_ALL_IGNORED_TESTS:C/^(.)/and not \1/:tW:C/^and //}
|
|
|
|
. if !target(do-test)
|
|
do-test:
|
|
@cd ${TEST_WRKSRC} && ${SETENVI} ${WRK_ENV} ${TEST_ENV} ${PYTHON_CMD} -m pytest \
|
|
-k '${_PYTEST_FILTER_EXPRESSION}' \
|
|
-v -rs -o addopts= \
|
|
${PYTEST_ARGS}
|
|
. endif
|
|
|
|
.endif
|