小编Cri*_*n M的帖子

有没有解决方案绕过'迭代过程中无法将新密钥添加到哈希(RuntimeError)'?

我对预期的RuntimeError有一个很大的问题:"在迭代期间无法将新密钥添加到哈希中"

在我的情况下,我有一个YAML文件:test.yaml - 我已经添加了一些键.

test.yaml
key1:
key2:
key3:
Run Code Online (Sandbox Code Playgroud)

我在变量中获取文件的内容:

file_hash = YAML.load_file("testm.yaml")
Run Code Online (Sandbox Code Playgroud)

然后我需要循环遍历此哈希并向其添加其他键:

file_hash.each do |key|
   file_hash[key] = 'key_1'
   file_hash[key] = 'key_2'
end
File.open('test.yaml', 'w') { |f| YAML.dump(file_hash, f) }
Run Code Online (Sandbox Code Playgroud)

主要问题是我在循环中无法写入哈希.当你有权控制循环块时,我不明白为什么会这样.还有另一种方法可以完成我上面展示的内容吗?

注意:我使用的是RUBY 1.9.3 p547

ruby ruby-on-rails ruby-hash

16
推荐指数
2
解决办法
1万
查看次数

我怎样才能使黄瓜运行所有步骤(不要跳过它们),即使其中一个失败了?

我正在使用带有RubyMine的Cucumber,我有一个方案,其中的步骤可以验证表单中的一些特殊控件(我使用黄瓜进行自动化测试).控件彼此之间没有任何关系,如果前面的步骤失败,则没有理由跳过这些步骤.

有谁知道我应该使用哪些配置或命令来运行场景中的所有步骤,即使它们都失败了?

cucumber

11
推荐指数
1
解决办法
6386
查看次数

Ruby/Watir-Webdriver - 下载后无法访问该文件

我正在研究从网站下载文件并将其添加到文件夹的测试场景.对于下载部分,我使用Watir文档中浏览器下载页面上描述的代码.当我等待下载文件时,在我的测试中遇到了主要问题:

    def verify_csv_file_exists
     path = Dir.getwd + "/downloads/"
     until File.exist?("#{path}*.csv") == true
      sleep 1
     end 
    end
Run Code Online (Sandbox Code Playgroud)

运行测试时,上面的过程永远不会停止,因为尽管文件已下载,但它无法在目录中看到该文件.

有谁知道如何处理这种情况?

谢谢.

ruby watir-webdriver

2
推荐指数
1
解决办法
2191
查看次数