打印测试执行时间并使用py.test锁定缓慢的测试

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

有没有办法让py。测试打印出(慢)测试的执行时间,因此确定有问题的测试变得更容易?

43218 次浏览

我不确定这将解决你的问题,但你可以通过--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