使用 py.test 打印测试执行时间并确定慢速测试

Printing test execution times and pinning down slow tests with py.test

我正在 运行 使用 py.test 在 CI 服务器上进行单元测试。测试使用通过网络获取的外部资源。有时测试运行器花费的时间太长,导致测试运行器被中止。我无法在本地重复这些问题。

有没有办法让 py.test 打印出(慢)测试的执行时间,从而更容易确定有问题的测试?

我不确定这是否能解决您的问题,但您可以传递 --durations=N 以在测试套件完成后打印最慢的 N 测试。

使用--durations=0打印全部。

您可以通过 --durations

传递号码
pytest --durations=0 — Show all times for tests and setup and teardown

pytest --durations=1 — Just show me the slowest

pytest --durations=50 — Slowest 50, with times, … etc

参考:https://medium.com/@brianokken/pytest-durations-0-show-all-times-for-tests-and-setup-and-teardown-848dccac85db

或者:https://docs.pytest.org/en/latest/usage.html#profiling-test-execution-duration