gpt4 book ai didi

ruby - 我如何在 RSpec 中测试我加载的代码是否有任何 Ruby 警告?

转载 作者:数据小太阳 更新时间:2023-10-29 07:59:01 31 4
gpt4 key购买 nike

有什么方法可以访问 RSpec 示例中的 Ruby 警告列表吗?我在正在测试的库中收到以下错误,并想为其编写单元测试。

warning: previous definition of BUILD_FILE was here

最佳答案

我最终启动了一个新流程来评估流程输出。在我的例子中,问题是一个重新定义的常量,所以我通过将类两次加载到新的 Ruby 进程中然后使用 IO 流读取输出来进行测试:

it 'should not redefine BUILD_FILE constant' do
root_path = "#{File.dirname(__FILE__)}/../../../../"
cmd = "load \"#{root_path}libraries/build_file.rb\";"
ruby_path = 'C:/opscode/chefdk/embedded/bin/ruby.exe'

pipe_cmd_in, pipe_cmd_out = IO.pipe
pid = Process.spawn("#{ruby_path} -e '#{cmd} #{cmd}'", :out => pipe_cmd_out, :err => pipe_cmd_out)
Process.wait(pid)
pipe_cmd_out.close
output = pipe_cmd_in.read
puts "OUTPUT = #{output}"

expect(output).to_not match(/previous\sdefinition\sof\sBUILD_FILE/)
end

关于ruby - 我如何在 RSpec 中测试我加载的代码是否有任何 Ruby 警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35562232/

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