Я пытаюсь запустить инструмент покрытия python, используя встроенный python, загруженный с https://www.python.org/ftp/python/3.6.1/python-3.6.1-embed-amd64.zip Ниже приведены шаги, которые я выполнил для запуска тестового кода с использованием модуля покрытия.
1) После загрузки python-3.6.1-embed-amd64.zip, я распаковываю файлы в D: \ some_directory \ python-3.6.1-embed-amd64
2) cd python-3.6.1-embed-amd64
3) python get-pip.py
4) python -mpip install охват
5) python-3.6.1-embed-amd64 \ python36._pth изменен на
python36.zip
Lib\site-packages
.
# Uncomment to run site.main() automatically
#import site
6) Если используется интернет-прокси, используйте следующую команду
SET HTTP_PROXY=http://username:password@proxy_ip:proxy_port
7) python -mpip install покрытие
Создание тестовых файлов
Файл module_prog.py выглядит следующим образом
# -*- coding: utf-8 -*-
"""
Dummy method for testing
"""
def method_to_tested() -> None:
"""
Method To be tested
"""
print("Called method to be tested")
Файл test_module.py выглядит следующим образом
""" Unit test script for testing File : test_module.py
"""
import unittest
from module_prog import method_to_tested
class TestMethods(unittest.TestCase):
""" Testing the methods """
def test_method_to_tested(self):
method_to_tested()
if __name__ == "__main__":
unittest.main(warnings='ignore')
8) Я запускаю следующее
D:\some_directory\python-3.6.1-embed-amd64>python test_module.py
Called method to be tested
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
9) Но если я запускаю инструкцию, указанную ниже, используя converage, я получаю следующую ошибку:
D:\some_directory\python-3.6.1-embed-amd64>python -mcoverage run test_module.py
Traceback (most recent call last):
File "test_module.py", line 4, in <module>
import unittest
ModuleNotFoundError: No module named 'unittest'
Если я запускаю команду
Scripts\converage.exe run test_module.py
Затем покрытие запускается успешно, но если я переместлю встроенный питон в другой каталог и попытаюсь выполнить ту же команду, что и выше, я получу следующую ошибку
D:\some_other_directory\python-3.6.1-embed-amd64>Scripts\coverage.exe run test_module.py
Fatal error in launcher: Unable to create process using
'"d:\some_directory\python-3.6.1-embed-amd64\python.exe" "D:\some_other_directory\python-3.6.1-embed-amd64\Scripts\coverage.exe" run test_module.py'
Как я могузаставить покрытие работать как модуль python