pytest 是一个常用的 Python 测试框架,它提供了丰富的功能和灵活的配置选项。在编写大型项目时,测试文件的数量可能会很多,每次运行所有的测试文件可能会耗费很多时间。因此,有时我们希望只运行更改过的文件,以提高测试的效率。本文将介绍如何使用 pytest 来仅运行更改的文件,并给出相应的案例代码。
使用 pytest 运行更改的文件pytest 提供了一个命令行选项 `--lf`(--last-failed),可以仅运行上次运行失败的测试文件。结合 `--ff`(--failed-first)选项,可以先运行上次失败的文件,再运行其他更改的文件。这样,我们就可以只运行更改的文件,而不必每次都运行所有的测试。为了演示这个功能,我们假设有以下两个测试文件:`test_addition.py` 和 `test_subtraction.py`。首先,我们运行所有的测试文件,确保所有的测试都通过。python# test_addition.pydef test_addition(): assert 2 + 2 == 4# test_subtraction.pydef test_subtraction(): assert 4 - 2 == 2接下来,我们修改 `test_addition.py` 文件中的测试用例,使其失败。
python# test_addition.pydef test_addition(): assert 2 + 2 == 5 # 修改为错误的断言现在,我们可以使用 `--lf` 和 `--ff` 选项来只运行更改的文件。在命令行中执行以下命令:
pytest --ff --lf结果会显示首先运行 `test_addition.py` 文件,因为它是上次失败的文件,然后再运行 `test_subtraction.py` 文件。这样,我们只运行了更改的文件,而不必每次都运行所有的测试。在本文中,我们介绍了如何使用 pytest 仅运行更改的文件,以提高测试的效率。通过使用 `--lf` 和 `--ff` 选项,我们可以先运行上次失败的文件,再运行其他更改的文件。这样,我们只需要运行需要测试的部分,而不必每次都运行所有的测试。这对于大型项目来说尤为重要,可以大大减少测试的时间和资源消耗。希望本文对你理解 pytest 的文件选择功能有所帮助。如果你有任何问题或疑惑,请随时向我们提问。参考文献:- pytest 官方文档: https://docs.pytest.org/en/latest/index.html