gpt4 book ai didi

ruby - 无法从 Cucumber 2.3.2 中的 scenario.file 获取场景的文件名

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

我在 Rails 应用/features/support/hooks.rb 中有这段代码:

After do |scenario|
if scenario.failed?
filename = "#{FAILED_DIR_PATH}/failed--#{scenario.file.gsub("features/","").gsub("/","-")}--#{scenario.line}.html"
Capybara.save_page filename
end
end

如果文件 /features/user_features/user_login.feature 中第 12 行的场景失败,则代替默认的 capybara 页面转储文件名

tmp/capybara/capybara-5654648798738734.html

转储将以更好的文件名保存:

tmp/capybara/failed--user_features-user_login.feature--12.html

因此,如果有很多失败,我会立即知道哪个转储是正确的。

这在 Cucumber 1.3.2 中有效。

今天我更新了 gems 并得到了 Cucumber 2.3.2 并得到了这个错误:

 undefined method `file' for #<Cucumber::RunningTestCase::Scenario:0x007f9598abb230>

如果我调试它,场景只有这些方法:

Cucumber::RunningTestCase::Scenario#methods: 

accept_hook? exception failed? outline? passed? skip_invoke! source_tag_names source_tags status title with_result

我唯一能找到文件名的地方是 scenario.exception.backtrace(深埋在 Capybara 文件下)。

现在是否有可能获取场景文件路径和场景开始的行号?

最佳答案

在 Cucumber 2 中,filelinescenariolocation 的属性,而不是场景本身。将 scenario.file 替换为 scenario.location.file 并将 scenario.line 替换为 scenario.location.line

关于ruby - 无法从 Cucumber 2.3.2 中的 scenario.file 获取场景的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35631103/

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