在tox中,我可以使用神奇的envsitepackagesdir变量进行get the site-packages directory of the current environment。我如何在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')发布于 2021-02-14 10:06:14
只要您实际安装的是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')发布于 2021-02-15 08:31:50
envsitepackagesdir实际上并不是覆盖范围所必需的。您可以将模块名称传递给--cov,coverage将在导入该模块的任何位置计算该模块的覆盖率:
import nox
@nox.session()
def test(session):
session.install('.')
session.install('pytest', 'pytest-cov')
session.run('pytest', '--cov', 'mypackage')https://stackoverflow.com/questions/66172351
复制相似问题