gpt4 book ai didi

ruby - 运行 RSpec 中所有示例的命令行,包括被过滤掉的示例?

转载 作者:数据小太阳 更新时间:2023-10-29 06:42:37 25 4
gpt4 key购买 nike

有几个例子比较慢,过滤掉如下:

RSpec.configure do |c|
c.filter_run_excluding slow: true
end

describe 'get averages but takes a long time', slow: true do
it 'gets average foo' do
....
end

it 'gets average bar' do
...
end
end

这很好用并且不会运行缓慢的测试。

rspec

但是从命令行运行所有示例的 RSpec 命令是什么,包括被过滤掉的慢的?

最佳答案

如果您运行 rspec --help,输出包括以下内容:

    -t, --tag TAG[:VALUE]        Run examples with the specified tag, or exclude examples
by adding ~ before the tag.
- e.g. ~slow
- TAG is always converted to a symbol

您可以运行 rspec --tag slow 来运行所有标记为慢的示例;但是,这并没有像您希望的那样运行所有示例。我不认为有一种简单的方法可以得到你想要的东西; exclusion 过滤器是为您不想在命令行覆盖它的情况而设计的(例如,基于 ruby​​ 版本或其他任何东西——强制运行一个不符合要求的规范是没有意义的'适用于您的 ruby 版本)。你可以打开一个rspec core issue所以我们可以讨论潜在的变化来添加你想要的东西。同时,您可以使用环境变量获取它:

RSpec.configure do |c|
c.filter_run_excluding slow: true unless ENV['ALL']
end

使用此设置,rspec 将运行除慢速规范之外的所有规范,ALL=1 rspec 将运行所有规范,包括慢速规范。

关于ruby - 运行 RSpec 中所有示例的命令行,包括被过滤掉的示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12861627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com