【发布时间】:2015-03-09 04:21:08
【问题描述】:
我正在使用 py.test 在 CI 服务器上运行单元测试。测试使用通过网络获取的外部资源。有时测试运行器花费的时间太长,导致测试运行器被中止。我不能在本地重复这些问题。
有没有办法让 py.test 打印出(慢)测试的执行时间,从而更容易确定有问题的测试?
【问题讨论】:
我正在使用 py.test 在 CI 服务器上运行单元测试。测试使用通过网络获取的外部资源。有时测试运行器花费的时间太长,导致测试运行器被中止。我不能在本地重复这些问题。
有没有办法让 py.test 打印出(慢)测试的执行时间,从而更容易确定有问题的测试?
【问题讨论】:
我不确定这是否能解决您的问题,但您可以通过 --durations=N 在测试套件完成后打印最慢的 N 测试。
使用--durations=0打印全部。
【讨论】:
--durations=0 将报告所有测试的执行时间。
[run] branch = True 的.coveragerc 文件添加分支覆盖信息?
(0.00 durations hidden. Use -vv to show these durations.) 这没有任何意义。
--durations-min=N 您可以设置最短持续时间(以秒为单位)以包含在最慢列表中。默认值为 0.005,因此即使 --durations=0 也不会显示任何低于 0.005 的值,除非您为 durations-min 设置值
你可以用--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://docs.pytest.org/en/latest/usage.html#profiling-test-execution-duration
【讨论】: