gpt4 book ai didi

python - 使 python pytest 单元测试独立于执行 py.test 的位置运行?

转载 作者:太空宇宙 更新时间:2023-11-04 00:58:14 24 4
gpt4 key购买 nike

假设我的代码是这样的

import pytest
import json

@pytest.fixture
def test_item():
test_item = json.load(open('./directory/sample_item_for_test.json','rb'))
return test_item

def test_fun(test_document):
assert type(test_item.description[0]) == unicode

我想通过 Py.Test 运行这个测试

如果我从它所在的目录运行 Py.test,就没问题。但是如果我从上面的目录运行它,它会因为找不到“sample_item_for_test.json”而失败。无论我在哪里执行 Py.test,有没有办法让这个测试正确运行?

最佳答案

魔法属性 __file__ 是文件系统上 python 文件的路径。因此,您可以将其与 os 中的一些魔法一起使用以获取当前目录...

import pytest
import json
import os

_HERE = os.path.dirname(__file__)
_TEST_JSON_FILENAME = os.path.join(_HERE, 'directory', 'sample_item_for_test.json')

@pytest.fixture
def test_item():
with open(_TEST_JSON_FILENAME, 'rb') as file_input:
return json.load(file_input)

关于python - 使 python pytest 单元测试独立于执行 py.test 的位置运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34047649/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com