当前位置: 首页 > 知识库问答 >
问题:

无法从 Cucumber 2.3.2 中的场景.file 中获取方案的文件名

仰欣悦
2023-03-14

我有这个代码在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

如果文件/特征/user_features/user_login.feature中第 12 行的方案失败,则使用默认的水豚页面转储文件名

tmp/capybara/capybara-5654648798738734.html

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

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

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

这在Cucumber 1.3.2中有效。

今天我更新了gems,得到了< code>Cucumber 2.3.2,得到了这个错误:

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

如果我调试它,< code>scenario只有这些方法:

Cucumber::RunningTestCase::Scenario#methods: 

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

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

现在有可能获得场景文件路径和场景开始的行号吗?

共有1个答案

舒仲渊
2023-03-14

在Cucumber 2中,文件场景位置的属性,而不是方案 本身的属性。替换<code>场景。文件带有scenario.location。文件和<code>场景。行与场景。位置。行

 类似资料:
  • 我想看GMail的邮件正文。 我能够获得所有详细信息,例如发件人姓名,电子邮件和主题等,但不能获得电子邮件正文。 我知道有特定的Gmail的API可以做到这一点,但IMAP不应该工作吗? 从PHP的文档中可以看出: 我尝试了<code>$message=imap_fetchbody($inbox,$email_number,“1.2”)和

  • 接口说明 获取场景中shp素材的样式 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 GET /wish3dearth/api/material/shp/v1.0.0/getShpStyle 是否需要登录 否 请求字段说明 参数 类型 请求类型 是否必须 说明 sceneId string query 是 场景ID materialId st

  • 接口说明 获取场景中shp素材的样式 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 如开启https功能,请求地址的协议应改为https,如:https://www.example.com/wish3dearth/api/access/v1.0.0/getLicenseInfo API地址 GET /wish3dearth/api/material/s

  • 问题内容: 我正在寻找一种方法来获取jar文件中所有类的方法存根的列表。我不确定从哪里开始…我可以使用Reflection或Javassist或其他我还没有听说过的工具吗?至少有可能打开jar包,反编译类文件并使用行解析器扫描方法,但是我认为这是最肮脏的方法;-) 有任何想法吗? 亲切的问候 问题答案: 根据aioobe的回答,您还可以使用ASM的树API(而不是其访问者API)来解析JAR文件中

  • 接口说明 访问到对该场景操作过得信息 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /api/scene/1.0.0/getSceneJson 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 id string form 是 场景ID 响应字段说明 无 响应成功示例 { "code": 200, "d

  • 问题内容: 我有一个JAR文件,其中包含使用外部模型文件的API。我想将模型文件包含在JAR本身中,以便其他开发人员更容易使用。该API仅接受File对象,有什么方法可以做到这一点?我已经尝试了以下方法,但它们失败了: 使用class.getResourceAsStream()。如果API接受了InputStream,这将起作用。 解析类路径并尝试从条目构建(JAR将显示为app.jar) 我想一