[英]Get site-packages directory in nox
在 tox 中,我可以使用envsitepackagesdir
魔术变量获取当前环境的 site-packages 目录。 我如何在nox
中做同样的事情? 这在尝试覆盖我的 package 时特别有用。
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')
只要您实际安装的是 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')
envsitepackagesdir
实际上并不是覆盖所必需的。 您可以将模块名称传递给--cov
并且coverage
将计算该模块的覆盖率,无论它被导入到哪里:
import nox
@nox.session()
def test(session):
session.install('.')
session.install('pytest', 'pytest-cov')
session.run('pytest', '--cov', 'mypackage')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.