AirtestProject / AirtestProject/Airtest

PO模型下使用pytest日志报错ValueError: I/O operation on closed file.

Đang mở
#1,095 3 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Python
Star
9.6k
Fork
1.5k
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

: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执行用例的时候,直行通过,但是有报错信息

**相关截图:**
![](https://hfc20-issue-helper.s3.nie.netease.com/media/2023/01/05/432/image.png)
![](https://hfc20-issue-helper.s3.nie.netease.com/media/2023/01/05/432/image_V3XWdQZ.png)
![](https://hfc20-issue-helper.s3.nie.netease.com/media/2023/01/05/432/image_zBmOG2o.png)
![](https://hfc20-issue-helper.s3.nie.netease.com/media/2023/01/05/432/image_ueg8krQ.png)

**报错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的代码:**
```
代码在截图里
```

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.