gpt4 book ai didi

ruby - 如何在不同配置下运行 rspec 测试

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

我的问题一定已经解决了,但我找不到。

我在不同文件中的各种描述 block 中有测试/示例。这些测试可以在三种不同配置的手机、平板电脑和台式机上运行。按测试分组的最佳做法是什么,以便我可以一起或独立运行它们。

我尝试关注 shared_example方法

shared_examples 'tests' do |form_factor|
it 'example 1' do
end
it 'example 2' do
end
it 'example 3' do
end
end

在另一个文件中

 shared_examples 'tests' do |form_factor|
it 'example 1' do
end
it 'example 2' do
end
end

但是这种方法不适用于另一个文件中的测试。只要我在另一个文件中添加另一个 shared_examples block ,我就会得到

WARNING: Shared example group 'tests' has been previously defined at:
/1_spec.rb:3
...and you are now defining it at:
/2_spec.rb:2
The new definition will overwrite the original one.

我也尝试过使用环境变量的方法,但像这样在命令行上传递所有这些

FORM_FACTOR=phone rspec .
FORM_FACTOR=table rspec .

看起来很笨重。建议?我的目标是能够传递不同的 form_factors 或运行所有这些。所以如果我做类似的事情

rspec run_all

所有外形规范都应该通过并运行所有三个测试如果我发送

rspec run_phone

只应发送手机

最佳答案

在您的 spec/spec_helper.rb 文件中添加不同过滤器的自定义配置:

RSpec.configure do |config|
if config.filter[:type] == :desktop
# configuration for desktop
elsif config.filter[:type] == :tablet
# configuration for tablet
end
....
end

是的,您仍然需要为每种类型运行单独的命令,但为什么不将它们连接成一个:

rspec --tag type:desktop; rspec --tag type:tablet; rspec --tag type:phone

另一种选择是创建 Rake 任务,该任务将为每种类型运行 rspec 测试。

关于ruby - 如何在不同配置下运行 rspec 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23024214/

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