Airtest
Airtest copied to clipboard
PO模型下使用pytest日志报错ValueError: I/O operation on closed file.
:bulb:相关项目: Airtest
标题: [问题咨询]PO模型下使用pytest日志报错ValueError: I/O operation on closed file.
AirtestIDE版本: 无
- [x] 使用了本地Pyhton环境运行脚本
- Python版本: 3.8.10
- Airtest版本: v1.2.7
报错描述: 使用airtest来做PO模式的UI自动化,airtest的操作和定位信息作为handle层,在通过pytest执行用例的时候,直行通过,但是有报错信息
相关截图:
报错Log:
--- Logging error ---
Traceback (most recent call last):
File "C:\Users\EDY\AppData\Local\Programs\Python\Python38\lib\logging\__init__.py", line 1088, in emit
stream.write(msg + self.terminator)
ValueError: I/O operation on closed file.
Call stack:
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\utils\snippet.py", line 92, in exitfunc
_cleanup()
======================= 1 passed, 2 warnings in 14.25s ========================
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\utils\snippet.py", line 64, in _cleanup
func(*args, **kwargs)
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\core\android\adb.py", line 1714, in cleanup_adb_forward
adb._cleanup_forwards()
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\core\android\adb.py", line 897, in _cleanup_forwards
self.remove_forward(local)
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\core\android\adb.py", line 584, in remove_forward
self.cmd(cmds)
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\core\android\adb.py", line 179, in cmd
proc = self.start_cmd(cmds, device)
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\core\android\adb.py", line 147, in start_cmd
LOGGING.debug(" ".join(cmds))
Message: 'C:\\Users\\EDY\\PycharmProjects\\airUI\\venv\\Lib\\site-packages\\airtest\\core\\android\\static\\adb\\windows\\adb.exe -P 5037 -s JPF4C19123011893 forward --remove tcp:15989'
Arguments: ()
--- Logging error ---
Traceback (most recent call last):
File "C:\Users\EDY\AppData\Local\Programs\Python\Python38\lib\logging\__init__.py", line 1088, in emit
stream.write(msg + self.terminator)
ValueError: I/O operation on closed file.
Call stack:
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\utils\snippet.py", line 92, in exitfunc
_cleanup()
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\utils\snippet.py", line 64, in _cleanup
func(*args, **kwargs)
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\core\android\adb.py", line 1714, in cleanup_adb_forward
adb._cleanup_forwards()
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\core\android\adb.py", line 897, in _cleanup_forwards
self.remove_forward(local)
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\core\android\adb.py", line 584, in remove_forward
self.cmd(cmds)
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\core\android\adb.py", line 179, in cmd
proc = self.start_cmd(cmds, device)
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\core\android\adb.py", line 147, in start_cmd
LOGGING.debug(" ".join(cmds))
Message: 'C:\\Users\\EDY\\PycharmProjects\\airUI\\venv\\Lib\\site-packages\\airtest\\core\\android\\static\\adb\\windows\\adb.exe -P 5037 -s JPF4C19123011893 forward --remove tcp:12439'
Arguments: ()
--- Logging error ---
Traceback (most recent call last):
File "C:\Users\EDY\AppData\Local\Programs\Python\Python38\lib\logging\__init__.py", line 1088, in emit
stream.write(msg + self.terminator)
ValueError: I/O operation on closed file.
Call stack:
File "C:\Users\EDY\AppData\Local\Programs\Python\Python38\lib\threading.py", line 890, in _bootstrap
self._bootstrap_inner()
File "C:\Users\EDY\AppData\Local\Programs\Python\Python38\lib\threading.py", line 932, in _bootstrap_inner
self.run()
File "C:\Users\EDY\AppData\Local\Programs\Python\Python38\lib\threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\utils\nbsp.py", line 37, in _populateQueue
LOGGING.debug("[%s]%s" % (self.name, repr(line.strip())))
Message: "[rotation_server]b''"
Arguments: ()
--- Logging error ---
Traceback (most recent call last):
File "C:\Users\EDY\AppData\Local\Programs\Python\Python38\lib\logging\__init__.py", line 1088, in emit
stream.write(msg + self.terminator)
ValueError: I/O operation on closed file.
Call stack:
File "C:\Users\EDY\AppData\Local\Programs\Python\Python38\lib\threading.py", line 890, in _bootstrap
self._bootstrap_inner()
File "C:\Users\EDY\AppData\Local\Programs\Python\Python38\lib\threading.py", line 932, in _bootstrap_inner
self.run()
File "C:\Users\EDY\AppData\Local\Programs\Python\Python38\lib\threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\utils\nbsp.py", line 37, in _populateQueue
LOGGING.debug("[%s]%s" % (self.name, repr(line.strip())))
Message: "[minicap_server]b''"
Arguments: ()
--- Logging error ---
Traceback (most recent call last):
File "C:\Users\EDY\AppData\Local\Programs\Python\Python38\lib\logging\__init__.py", line 1088, in emit
stream.write(msg + self.terminator)
ValueError: I/O operation on closed file.
Call stack:
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\utils\snippet.py", line 92, in exitfunc
_cleanup()
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\utils\snippet.py", line 64, in _cleanup
func(*args, **kwargs)
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\core\android\cap_methods\minicap.py", line 408, in teardown_stream
self._cleanup()
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\core\android\cap_methods\minicap.py", line 396, in _cleanup
func()
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\core\android\adb.py", line 584, in remove_forward
self.cmd(cmds)
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\core\android\adb.py", line 179, in cmd
proc = self.start_cmd(cmds, device)
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\core\android\adb.py", line 147, in start_cmd
LOGGING.debug(" ".join(cmds))
Message: 'C:\\Users\\EDY\\PycharmProjects\\airUI\\venv\\Lib\\site-packages\\airtest\\core\\android\\static\\adb\\windows\\adb.exe -P 5037 -s JPF4C19123011893 forward --remove tcp:15989'
Arguments: ()
--- Logging error ---
Traceback (most recent call last):
File "C:\Users\EDY\AppData\Local\Programs\Python\Python38\lib\logging\__init__.py", line 1088, in emit
stream.write(msg + self.terminator)
ValueError: I/O operation on closed file.
Call stack:
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\utils\snippet.py", line 92, in exitfunc
_cleanup()
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\utils\snippet.py", line 64, in _cleanup
func(*args, **kwargs)
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\core\android\cap_methods\minicap.py", line 412, in teardown_stream
self.frame_gen.send(1)
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\utils\threadsafe.py", line 27, in send
return self.it.send(*args)
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\core\android\cap_methods\minicap.py", line 283, in _get_stream
LOGGING.debug("minicap stream ends")
Message: 'minicap stream ends'
Arguments: ()
--- Logging error ---
Traceback (most recent call last):
File "C:\Users\EDY\AppData\Local\Programs\Python\Python38\lib\logging\__init__.py", line 1088, in emit
stream.write(msg + self.terminator)
ValueError: I/O operation on closed file.
Call stack:
File "C:\Users\EDY\AppData\Local\Programs\Python\Python38\lib\threading.py", line 890, in _bootstrap
self._bootstrap_inner()
File "C:\Users\EDY\AppData\Local\Programs\Python\Python38\lib\threading.py", line 932, in _bootstrap_inner
self.run()
File "C:\Users\EDY\AppData\Local\Programs\Python\Python38\lib\threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\utils\nbsp.py", line 37, in _populateQueue
LOGGING.debug("[%s]%s" % (self.name, repr(line.strip())))
Message: "[airtouch_server]b''"
Arguments: ()
--- Logging error ---
Traceback (most recent call last):
File "C:\Users\EDY\AppData\Local\Programs\Python\Python38\lib\logging\__init__.py", line 1088, in emit
stream.write(msg + self.terminator)
ValueError: I/O operation on closed file.
Call stack:
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\utils\snippet.py", line 92, in exitfunc
_cleanup()
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\utils\snippet.py", line 64, in _cleanup
func(*args, **kwargs)
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\core\android\touch_methods\maxtouch.py", line 117, in teardown
self.adb.remove_forward("tcp:{}".format(self.localport))
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\core\android\adb.py", line 584, in remove_forward
self.cmd(cmds)
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\core\android\adb.py", line 179, in cmd
proc = self.start_cmd(cmds, device)
File "C:\Users\EDY\PycharmProjects\airUI\venv\lib\site-packages\airtest\core\android\adb.py", line 147, in start_cmd
LOGGING.debug(" ".join(cmds))
Message: 'C:\\Users\\EDY\\PycharmProjects\\airUI\\venv\\Lib\\site-packages\\airtest\\core\\android\\static\\adb\\windows\\adb.exe -P 5037 -s JPF4C19123011893 forward --remove tcp:12439'
Arguments: ()
连接设备信息:
设备类型 | 设备型号 | 系统版本号 | apk名称/下载链接 |
---|---|---|---|
Android | 华为nova4 | 鸿蒙2.0 | 特运通货站版 |
提供最小可复现此BUG的代码:
代码在截图里
pytest.ini加上这句: addopts = -s
我也遇到了一样的问题,这个有什么解决方案吗