如何自动删除PyTest期间生成的临时文件?

2024-04-26 09:57:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我的用例是:

  1. 我在一个名为“Source”的文件夹中有一组python脚本
  2. 在另一个名为“testscripts”的文件夹中,我为每个python脚本提供了一组专用的测试用例脚本(使用PyTest)。我能够运行测试用例
  3. 这两个文件夹都有init python脚本

问题:在测试用例运行期间创建临时文件。我尝试使用夹具来解决此问题。特别是我试着跟着这个问题, PyTest: Auto delete temporary directory created with tmpdir_factory 但是,这并没有帮助我实现我的目标

此外,我想知道是否可以将pythondict作为命令行参数,因为源文件夹中的脚本以dictionary作为参数通过命令运行。 现在我通过这个命令,

python -m pytest Test Scripts / test_script.py

其中一个测试用例的代码段:

import pytest
from script_name import class_name
import shutil

@pytest.fixture
def obj_creation():
    my_obj = class_name(data = " { 'a': 'b','c': 'd'} ")
    return [my_obj]

@pytest.fixture(scope='session')
def project_file(tmpdir_factory):
    my_tmpdir = tmpdir_factory.mktemp("data")
    yield my_tmpdir 
    shutil.rmtree(str(my_tmpdir))

def test_no_new_office_ID(project_file, obj_creation):
    x = obj_creation[0].ofc_email()
    assert not x

我没有找到任何完整的网络材料(包括所有可能的用例)。请帮我做这个

快照: enter image description here


Tags: nameimport脚本文件夹obj参数pytestmy
1条回答
网友
1楼 · 发布于 2024-04-26 09:57:08

我正在使用Django的TestCase类进行自动测试。下面是我用来删除在测试中创建的临时文件的代码:

import shutil


@classmethod
def tearDownClass(cls):
    try:
        shutil.rmtree(django_settings.TESTS_MEDIA_ROOT)
    except OSError:
        pass
    return super().tearDownClass()

也许你可以用类似的方法删除你的文件

相关问题 更多 >