簡體   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