作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
来自 the docs :
Per default Aruba will create a directory tmp/aruba where it performs its file operations.
但是,我的应用程序使用 ENV["HOME"]
来创建和读取文件 (~/.foorc
),所以我需要 Aruba 使用假的 环境[“家”]
。
我是否需要在某些支持文件中设置它,或者是否有办法告诉 Aruba 其 tmp/aruba
用于 ENV["HOME"]
中的文件>?
这是我正在测试的代码的摘录(显然,我正在更高级别上使用 Cucumber/Aruba 对此进行测试,但 ENV["HOME"] 的使用在这里很重要。):
def initialize config_path = ""
if config_path.empty?
@config_path = File.join ENV["HOME"], ".todotxt.cfg"
else
@config_path = config_path
end
if file_exists?
super @config_path
validate
end
end
def file_exists?
File.exists? @config_path
end
#....
ask_to_create unless @config.file_exists?
#...
规范:
Scenario: todotxt
Given an empty installation
When I run `todotxt`
Then it should pass with:
"""
Should I create a sample config file? [Y/n]
"""
最佳答案
研究 Aruba 本身的实现,我可以制作非常相似的东西:
文件 features/support/aruba.rb 由 Cucumber 自动加载并实现 Around
Hook :
# Temporarily enforce an isolated, fake, homedir.
around do |scenario, block|
@__aruba_original_home = ENV["HOME"]
ENV["HOME"] = File.expand_path(File.join("tmp", "aruba"))
block.call
ENV["HOME"] = @__aruba_original_home
end
从现在开始,tmp/aruba 目录用作 $HOME。
请注意,在 aruba 中,这个临时路径是可配置的,上面的代码没有考虑到这一点。当 tmp 路径配置在别处时它会中断。
关于ruby - 如何让 Aruba 使用不同的 ENV ["HOME"]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14478406/
我是一名优秀的程序员,十分优秀!