Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.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
如何测试使用os导入并创建新文件夹等的python脚本?_Python_Python 3.x_Testing - Fatal编程技术网

如何测试使用os导入并创建新文件夹等的python脚本?

如何测试使用os导入并创建新文件夹等的python脚本?,python,python-3.x,testing,Python,Python 3.x,Testing,我不确定是否有一个很好的方法来测试这样的东西,但也许你知道一个: 我编写了一个python脚本,用于查找在某些给定目录中添加的更改文件,如果它检测到添加的文件,它将在这些文件上运行一个子进程,这需要1到2个小时。然后移动文件、删除和重命名文件夹等 现在我厌倦了每次添加一些更改时手动测试它,但我也不知道如何使用自动测试来测试它。有人有主意吗 谢谢 第一步是创建不同的功能,这可以通过内置的来完成。要高效地进行单元测试,首先需要将不同的功能划分为不同的功能/单元(如果尚未这样做)。也就是说,您应该有一

我不确定是否有一个很好的方法来测试这样的东西,但也许你知道一个:

我编写了一个python脚本,用于查找在某些给定目录中添加的更改文件,如果它检测到添加的文件,它将在这些文件上运行一个子进程,这需要1到2个小时。然后移动文件、删除和重命名文件夹等

现在我厌倦了每次添加一些更改时手动测试它,但我也不知道如何使用自动测试来测试它。有人有主意吗

谢谢

第一步是创建不同的功能,这可以通过内置的来完成。要高效地进行单元测试,首先需要将不同的功能划分为不同的功能/单元(如果尚未这样做)。也就是说,您应该有一个功能来检查更改,而没有其他功能。还有一个功能可以重命名文件夹,而不是e.t.c

然后,在运行unittest时,测试隔离的函数,例如检测更改的函数。这是在虚拟/模拟目录上完成的,该目录最好在开始时由测试脚本创建,然后在完成时删除。由于只测试检测更改的函数,因此它不依赖于缓慢的子流程,因此运行起来非常快。然后,您有另一个单元测试,用于测试移动、删除、重命名e.t.c。当您有一套完整的单元测试时,您知道您可以按预期分离功能/单元

然后,您应该定期运行单元测试,最好是每晚或每次更改时自动运行。这样做,您将很快捕获错误,并使它们更容易修复

例如:

import unittest
from my_module import hasDirectoryChanged

class CheckDirectoryChangesTestCase(unittest.TestCase):
    def setUp(self):
        createMockDirectory(dirName)

    def test_detect_when_change(self):
        addChangesToMockDirectory(dirName)
        self.assertTrue(hasDirectoryChanged(dirName))

    def test_no_detect_when_no_change(self):
        self.assertFalse(hasDirectoryChanged(dirName))

    def tearDown(self):
        removeMockDirectory(dirName)

下一步要做的是。在python中,可以通过各种方式完成这项工作,但最重要的是实现自动化

看看Python的单元测试——您可以为一组测试编写一个设置,在临时位置创建一些文件和文件夹,然后单元测试将逐个执行;每个测试都可以执行一些操作,然后验证预期结果是否反映在测试文件上。谢谢!我已经为每件事做了不同的功能。但是如何测试删除、重命名等?我是否需要使用python添加文件夹并测试它们是否在之后被删除?我已经用示例代码更新了我的答案。基本上,在unittest框架中,您有安装和拆卸功能,可以在其中创建/删除您正在测试的目录。这些功能在每次测试之前/之后运行。功能测试-更改时检测,测试-不更改时检测。谢谢!createMockDirectory函数是您自己的函数,或者可以从其他地方导入?createMockDirectory是您必须自行创建的函数