gpt4 book ai didi

pytest - 使用 tox 运行时,如何使 pytest 测试可以访问测试数据文件?

转载 作者:行者123 更新时间:2023-12-04 16:45:26 24 4
gpt4 key购买 nike

我想运行一个 test对于接受 Path 的函数通过参数将文件作为输入:function(some_path_to_file)通过tox .我想传递给函数的文件无法在测试设置期间临时创建(我通常通过 pytest s builtin tmpdir fixtures 执行的操作)但驻留在包中 <package>/data除测试目录外的目录 <package>/tests (位置 <package>/tests/data 可能会更好)。因为tox在 virtualenv 中运行测试我不清楚如何使测试数据文件可用于测试。我知道我可以定义 pytest 的基本临时目录与 --basedir option但我没有让它与 tox 一起使用还没有。

tl;dr

问题是 some_path_to_file 的转换来自 Pathstr (将其传递给 sqlite3.connect(database 内的 function )使用 Path.resolve( .无需配置 pytests --basedir选项和 tox以任何方式。

最佳答案

这也把我绊倒了。我能够解决它的方法是指定文本文件的完整路径我希望测试函数读取相对到基本目录。

例如,我的目录树如下所示:

.
├── __init__.py
├── my_package
│   ├── __init__.py
│   └── calculate_stats.py
├── my_package.egg-info
│   ├── PKG-INFO
│   ├── SOURCES.txt
│   ├── dependency_links.txt
│   ├── requires.txt
│   └── top_level.txt
├── bin
│   └── calculate_stats
├── requirements
│   ├── default.txt
│   └── development.txt
├── setup.py
├── test
│   ├── __init__.py
│   ├── test_calculate_stats.csv
│   ├── test_calculate_stats.txt
│   └── test_calculate_stats.py
└── tox.ini

在文件 test_calculate_stats.py 中,我有以下行:

assert (calculate_stats.calculate_stats_to_csv("test/test_calculate_stats.txt", "test/test_calculate_stats.csv") == 60)

calculate_stats_to_csv 函数读取test/test_calculate_stats.txt 文件,计算一些统计数据,并将它们输出到test/test_calculate_stats.csv

最初我只是将输入文件指定为 test_calculate_stats.txt,因为它与包含测试函数的文件位于同一目录中——那时我遇到了错误。

关于pytest - 使用 tox 运行时,如何使 pytest 测试可以访问测试数据文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53309298/

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