【发布时间】:2016-12-16 21:20:50
【问题描述】:
使用 ruby RSpec 测试套件很容易变得懒惰,并且过多地使用 db 而不是模拟事物。我正在尝试在持续集成构建中添加一个脚本,如果任何测试运行超过 5 秒,构建应该会失败。
这是我目前要去的方向。
使用 RSpec 的
--profile选项Grep 秒了。
如果任何秒数超过特定限制,则失败。
这是我目前的 WIP 命令:
rspec spec/models/user_spec.rb --profile | \
tee /dev/tty | \
grep '[0-9] seconds ./' | \
grep -oEi '[0-9]+\.[0-9]+' | \
awk '$1 > 5.0' \
问题:
这只会
awk输出数字。如果这在构建过程中失败,我们将不知道哪个文件是违规者。管道失败似乎很尴尬。
我会这样做(但必须有更好的方法):
if $(rspec spec... awk ...) > /dev/null ; then exit 1 ; fi
在所有问题中,我最卡在第一个问题上。有什么建议吗?
【问题讨论】: