繁体   English   中英

在 nox 中获取站点包目录

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM