我正在尝试测试我自己的antiweb版本,可以在这里找到。但是,我正在使用Pythons单元测试模块对其进行测试。代码如下:
import unittest
from unittest.mock import patch
from antiweb import main
import sys
import os
import tempfile
import shutil
class Test_Antiweb(unittest.TestCase):
def setUp(self):
self.test_dir = tempfile.mkdtemp()
self.testfile_source ="#@start()\n\n#@include(test_area)\n\n#@start(test_area)\n#This is test_area text\n#@(test_area)"
with open(os.path.join(self.test_dir, "testfile.py"), "w") as test:
test.write(self.testfile_source)
def test_antiweb(self):
self.test_args = ['antiweb.py', '-i', "-o docs", os.path.join(self.test_dir, "testfile.py")]
with patch.object(sys, 'argv', self.test_args):
success = main()
self.assertTrue(success)
def tearDown(self):
shutil.rmtree(self.test_dir)
if __name__ == '__main__':
unittest.main()
除了tearDown
功能外,所有功能都正常工作。在执行unittest时,如果不拆下,
,temp文件夹及其内容将被完美创建。但是使用tearDown
功能,我得到一个错误:
======================================================================
ERROR: test_antiweb (antiweb_tests.Test_Antiweb)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\Users\<username>\Documents\GitHub\antiweb\antiweb_tests.py", line 29, in tearDown
shutil.rmtree(self.test_dir)
File "C:\Python34\lib\shutil.py", line 478, in rmtree
return _rmtree_unsafe(path, onerror)
File "C:\Python34\lib\shutil.py", line 377, in _rmtree_unsafe
onerror(os.rmdir, path, sys.exc_info())
File "C:\Python34\lib\shutil.py", line 375, in _rmtree_unsafe
os.rmdir(path)
PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\
<username>\\AppData\\Local\\Temp\\tmp3lk01fn5'
当我再看临时文件夹时,文件夹本身仍然在那里,但现在是空的。这将是太多,包括我的反网络文件在这里,所以我有它在这里再次链接,如果你需要它。
这件事发生在我身上。您的问题在您的设置中
self.test_dir=tempfile.mkdtemp()返回文件描述符和路径的元组。删除前需要关闭文件描述符。
def setUp(self):
self.fd, self.test_dir = tempfile.mkdtemp()
...
def tearDown(self):
os.close(self.fd)
shutil.rmtree(self.test_dir)
有关更详细的解释,请参阅本文。
我的代码用于查看文件夹并删除分辨率为1920x1080的图像的脚本。我遇到的问题是,当我的代码运行时; 我收到以下错误消息: 我想确认一下,Python是我电脑上唯一运行的程序。导致此问题的原因是什么?如何解决?
问题内容: 我的代码用于一个脚本,该脚本查看一个文件夹并删除分辨率为1920x1080的图像。我的问题是我的代码运行时; 我收到此错误消息: 只需确认一下,Python是我计算机上运行的唯一程序。是什么导致此问题,我该如何解决? 问题答案: 您的过程就是打开文件的过程(仍然存在)。您需要先关闭它,然后再删除它。 我不知道PIL是否支持上下文,但是是否支持: 进入之前,请确保删除(并关闭文件)。 如
我正在尝试使用python从本地路径读取csv文件
我不断收到一个IOException,它无法访问该文件,因为它正被另一个进程使用。我想做的是每次我查看的文件都会被更改。。它通过TCP/IP以数组的形式发送。我找不到任何关闭XDocument的方法,只是不知道如何修复这个错误。。。我用谷歌搜索了一下,但还是什么都找不到。任何帮助都将不胜感激 编辑:我发现了其他的解决方案与fileereader和其他东西...但它似乎不同,当使用xfile
我正在测试一个python代码,它将文件从源路径移动到目标路径。测试是使用Python3中的pytest完成的。但我在这里面临着一个障碍。就是这样,我试图在代码结束时删除源路径和目标路径。为此,我使用了类似shutil的命令。rmtree(路径)或操作系统。rmdir(路径)。这导致了错误-“[WinError 32]该进程无法访问该文件,因为它正被另一进程使用”。请帮我做这个。下面是python
当我试图删除一个文件时,它说我的服务器正在使用它,所以我尝试使用(Image img=Image.FromFile(imgFilePath))实现一个,但随后我得到了