#python #nox
#python #nox
Вопрос:
В tox я могу получить каталог пакетов сайта текущей среды с envsitepackagesdir
помощью волшебной переменной. Как мне сделать то же самое в nox
? Это особенно полезно при попытке получить охват моего пакета.
import nox
@nox.session()
def test(session):
session.install('.')
session.install('pytest', 'pytest-cov')
session.run('pytest', '--cov', f'{session.virtualenv.site_packages_dir}/mypackage')
Ответ №1:
Пока вы фактически устанавливаете среду nox (не используете venv_backend='none'
), вы можете вычислить это из местоположения виртуальной среды и platform.sys
:
import nox
@nox.session()
def test(session):
if platform.system() == "Windows":
site_packages = f'{session.virtualenv.location}/Lib/site-packages'
else:
site_packages = f'{session.virtualenv.location}/lib/python{session.python}/site-packages'
session.install('.')
session.install('pytest', 'pytest-cov')
session.run('pytest', '--cov', f'{site_packages}/mypackage')
Ответ №2:
На envsitepackagesdir
самом деле это не обязательно для покрытия. Вы можете передать имя модуля --cov
и coverage
вычислить покрытие для этого модуля везде, где он импортируется:
import nox
@nox.session()
def test(session):
session.install('.')
session.install('pytest', 'pytest-cov')
session.run('pytest', '--cov', 'mypackage')