Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 覆盖率-PermissionError:[Errno 1]不允许操作_Python_Macos_Unit Testing_Code Coverage_Coverage.py - Fatal编程技术网

Python 覆盖率-PermissionError:[Errno 1]不允许操作

Python 覆盖率-PermissionError:[Errno 1]不允许操作,python,macos,unit-testing,code-coverage,coverage.py,Python,Macos,Unit Testing,Code Coverage,Coverage.py,我使用pytest和coverage模块进行测试用例和代码覆盖 从项目根目录中,我可以执行pytest-v,但不能执行pytest-v--cov=。/(下面的堆栈跟踪) 我将PYTHONPATH设置为项目的根目录 目录权限和所有权是drwxr-xr-x和saurabh staff。终端应用程序具有完全的磁盘访问权限 我的.coveragerc(位于项目根目录下)看起来像: [run] data_file = tests/coverage/ omit = data-structures/* [h

我使用pytest和coverage模块进行测试用例和代码覆盖

从项目根目录中,我可以执行
pytest-v
,但不能执行
pytest-v--cov=。/
(下面的堆栈跟踪)

我将
PYTHONPATH
设置为项目的根目录

目录权限和所有权是
drwxr-xr-x
saurabh staff
。终端应用程序具有完全的磁盘访问权限

我的
.coveragerc
(位于项目根目录下)看起来像:

[run]
data_file = tests/coverage/
omit = data-structures/*

[html]
directory = tests/coverage/html_report/

[xml]
output = tests/coverage/coverage.xml
堆栈跟踪

Traceback (most recent call last):
  File "/Users/saurabh/Desktop/Data Structures/data-structures/bin/pytest", line 10, in <module>
    sys.exit(console_main())
  File "/Users/saurabh/Desktop/Data Structures/data-structures/lib/python3.8/site-packages/_pytest/config/__init__.py", line 187, in console_main
    code = main()
  File "/Users/saurabh/Desktop/Data Structures/data-structures/lib/python3.8/site-packages/_pytest/config/__init__.py", line 143, in main
    config = _prepareconfig(args, plugins)
  File "/Users/saurabh/Desktop/Data Structures/data-structures/lib/python3.8/site-packages/_pytest/config/__init__.py", line 318, in _prepareconfig
    config = pluginmanager.hook.pytest_cmdline_parse(
  File "/Users/saurabh/Desktop/Data Structures/data-structures/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/Users/saurabh/Desktop/Data Structures/data-structures/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/Users/saurabh/Desktop/Data Structures/data-structures/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/Users/saurabh/Desktop/Data Structures/data-structures/lib/python3.8/site-packages/pluggy/callers.py", line 203, in _multicall
    gen.send(outcome)
  File "/Users/saurabh/Desktop/Data Structures/data-structures/lib/python3.8/site-packages/_pytest/helpconfig.py", line 100, in pytest_cmdline_parse
    config = outcome.get_result()  # type: Config
  File "/Users/saurabh/Desktop/Data Structures/data-structures/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/Users/saurabh/Desktop/Data Structures/data-structures/lib/python3.8/site-packages/pluggy/callers.py", line 187, in _multicall
    res = hook_impl.function(*args)
  File "/Users/saurabh/Desktop/Data Structures/data-structures/lib/python3.8/site-packages/_pytest/config/__init__.py", line 1003, in pytest_cmdline_parse
    self.parse(args)
  File "/Users/saurabh/Desktop/Data Structures/data-structures/lib/python3.8/site-packages/_pytest/config/__init__.py", line 1280, in parse
    self._preparse(args, addopts=addopts)
  File "/Users/saurabh/Desktop/Data Structures/data-structures/lib/python3.8/site-packages/_pytest/config/__init__.py", line 1186, in _preparse
    self.hook.pytest_load_initial_conftests(
  File "/Users/saurabh/Desktop/Data Structures/data-structures/lib/python3.8/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/Users/saurabh/Desktop/Data Structures/data-structures/lib/python3.8/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/Users/saurabh/Desktop/Data Structures/data-structures/lib/python3.8/site-packages/pluggy/manager.py", line 84, in <lambda>
    self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
  File "/Users/saurabh/Desktop/Data Structures/data-structures/lib/python3.8/site-packages/pluggy/callers.py", line 208, in _multicall
    return outcome.get_result()
  File "/Users/saurabh/Desktop/Data Structures/data-structures/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/Users/saurabh/Desktop/Data Structures/data-structures/lib/python3.8/site-packages/pluggy/callers.py", line 187, in _multicall
    res = hook_impl.function(*args)
  File "/Users/saurabh/Desktop/Data Structures/data-structures/lib/python3.8/site-packages/pytest_cov/plugin.py", line 126, in pytest_load_initial_conftests
    plugin = CovPlugin(options, early_config.pluginmanager)
  File "/Users/saurabh/Desktop/Data Structures/data-structures/lib/python3.8/site-packages/pytest_cov/plugin.py", line 177, in __init__
    self.start(engine.Central)
  File "/Users/saurabh/Desktop/Data Structures/data-structures/lib/python3.8/site-packages/pytest_cov/plugin.py", line 199, in start
    self.cov_controller.start()
  File "/Users/saurabh/Desktop/Data Structures/data-structures/lib/python3.8/site-packages/pytest_cov/engine.py", line 44, in ensure_topdir_wrapper
    return meth(self, *args, **kwargs)
  File "/Users/saurabh/Desktop/Data Structures/data-structures/lib/python3.8/site-packages/pytest_cov/engine.py", line 220, in start
    self.cov.erase()
  File "/Users/saurabh/Desktop/Data Structures/data-structures/lib/python3.8/site-packages/coverage/control.py", line 582, in erase
    self._data.erase(parallel=self.config.parallel)
  File "/Users/saurabh/Desktop/Data Structures/data-structures/lib/python3.8/site-packages/coverage/sqldata.py", line 730, in erase
    file_be_gone(self._filename)
  File "/Users/saurabh/Desktop/Data Structures/data-structures/lib/python3.8/site-packages/coverage/misc.py", line 148, in file_be_gone
    os.remove(path)
PermissionError: [Errno 1] Operation not permitted: '/Users/saurabh/Desktop/Data Structures/tests/coverage'
回溯(最近一次呼叫最后一次):
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/bin/pytest”,第10行,在
系统退出(控制台主控台()
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/lib/python3.8/site packages/_-pytest/config/_-init___.py”,第187行,位于console_main中
代码=main()
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/lib/python3.8/site packages/_pytest/config/_init__.py”,主文件第143行
config=\u prepareconfig(参数、插件)
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/lib/python3.8/site packages/_-pytest/config/__-init___;.py”,第318行,在prepareconfig中
config=pluginmanager.hook.pytest\u cmdline\u parse(
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/lib/python3.8/site packages/pluggy/hooks.py”,第286行,在__
返回self._hookexec(self,self.get_hookimpls(),kwargs)
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/lib/python3.8/site packages/pluggy/manager.py”,第93行,在
返回self.\u inner\u hookexec(钩子、方法、kwargs)
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/lib/python3.8/site packages/pluggy/manager.py”,第84行,在
self._inner_hookexec=lambda hook,methods,kwargs:hook.multicall(
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/lib/python3.8/site packages/pluggy/callers.py”,第203行,在multicall中
总干事(成果)
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/lib/python3.8/site packages/\u pytest/helpconfig.py”,pytest\u cmdline\u parse中的第100行
config=output.get_result()#类型:config
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/lib/python3.8/site packages/pluggy/callers.py”,第80行,在get_result中
raise ex[1]。使用_回溯(ex[2])
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/lib/python3.8/site packages/pluggy/callers.py”,第187行,多调用
res=钩子函数(*args)
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/lib/python3.8/site packages/\u pytest/config/\u_init\u_uuuuuuuu.py”,pytest\u cmdline\u parse中的第1003行
self.parse(args)
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/lib/python3.8/site packages/_-pytest/config/_-init__.py”,第1280行,在parse中
自我准备(args,addopts=addopts)
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/lib/python3.8/site packages/_-pytest/config/_-init__;.py”,第1186行,在_-preparse中
self.hook.pytest\u负载\u初始\u确认测试(
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/lib/python3.8/site packages/pluggy/hooks.py”,第286行,在__
返回self._hookexec(self,self.get_hookimpls(),kwargs)
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/lib/python3.8/site packages/pluggy/manager.py”,第93行,在
返回self.\u inner\u hookexec(钩子、方法、kwargs)
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/lib/python3.8/site packages/pluggy/manager.py”,第84行,在
self._inner_hookexec=lambda hook,methods,kwargs:hook.multicall(
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/lib/python3.8/site packages/pluggy/callers.py”,第208行,多调用
返回结果。获取结果()
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/lib/python3.8/site packages/pluggy/callers.py”,第80行,在get_result中
raise ex[1]。使用_回溯(ex[2])
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/lib/python3.8/site packages/pluggy/callers.py”,第187行,多调用
res=钩子函数(*args)
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/lib/python3.8/site packages/pytest\u cov/plugin.py”,第126行,在pytest\u load\u initial\u conftests中
plugin=CovPlugin(选项,早期配置.pluginmanager)
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/lib/python3.8/site packages/pytest\u cov/plugin.py”,第177行,在__
自启动(发动机中央)
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/lib/python3.8/site packages/pytest_cov/plugin.py”,第199行,开始
self.cov_controller.start()
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/lib/python3.8/site packages/pytest\u cov/engine.py”,第44行,在sure\u topdir\u包装中
返回方法(自身、*args、**kwargs)
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/lib/python3.8/site packages/pytest\u cov/engine.py”,第220行,开始
self.cov.erase()
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/lib/python3.8/site packages/coverage/control.py”,第582行,在erase中
self.\u data.erase(parallel=self.config.parallel)
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/lib/python3.8/site packages/coverage/sqldata.py”,第730行,以擦除方式显示
文件(self.\u文件名)
文件“/Users/saurabh/Desktop/Data Structures/Data Structures/lib/python3.8/site packages/coverage/misc.py”,第148行,在文件中
删除操作系统(路径)
PermissionError:[Errno 1]不允许操作:'/Users/saurabh/Desktop/Data Structures/tests/coverage'
我这样做是错误的还是有什么建议可以解决这个问题


更新

当我删除
data\u file=tests/coverage/
时,coverage命令工作正常。但是如果发生这种情况,因为可以选择更改数据
[run]
omit = data-structures/*
data_file = tests/coverage/.coverage

[html]
directory = tests/coverage/html_report/

[xml]
output = tests/coverage/coverage.xml