Чтобы протестировать библиотеку, установленную через pip в виртуальном окружении, можно использовать несколько подходов, в зависимости от сложности тестирования и интеграции с вашей текущей системой разработки.  Основная идея заключается в изолированном запуске тестов, чтобы избежать конфликтов с другими пакетами и версиями.
Общая схема действий:
python -m venv .venv (или python3 -m venv .venv в зависимости от вашей системы).pip и python выполнялись в контексте этого окружения.  Команда для активации:
      source .venv/bin/activate.venv\Scripts\activatepip. Например: pip install your_library.  Также, необходимо установить все необходимые зависимости для тестирования, такие как pytest, unittest, tox и т.д.  pip install pytest, например.tests/).pytest.  pytest автоматически обнаружит и запустит все файлы, имена которых начинаются с test_ или заканчиваются на _test.py.unittest, необходимо написать скрипт, который обнаруживает и запускает тесты.  Пример:
            
import unittest
if __name__ == '__main__':
    unittest.main()
tox или nox.  Эти инструменты позволяют создавать несколько виртуальных окружений с разными версиями Python и зависимостей, и запускать тесты в каждом из них.  Пример конфигурации tox.ini:
      
[tox]
envlist = py39, py310
[testenv]
deps =
    pytest
    your_library
commands =
    pytest
toxПример использования pytest:
Предположим, у вас есть библиотека mylib с функцией add, и вы хотите ее протестировать:
Файл mylib/mylib.py:
def add(a, b):
  return a + b
Файл tests/test_mylib.py:
from mylib import mylib
def test_add():
  assert mylib.add(2, 3) == 5
  assert mylib.add(-1, 1) == 0
  assert mylib.add(0, 0) == 0
После установки mylib и pytest в виртуальном окружении, запустите pytest в корневом каталоге проекта.  pytest обнаружит и запустит тесты, и вы увидите результат.
В заключение: Тестирование в виртуальном окружении - это важная практика для обеспечения качества кода, предотвращения конфликтов зависимостей и воспроизводимости тестов. Использование автоматизации и CI/CD позволяет сделать этот процесс более эффективным и надежным.