代码之家  ›  专栏  ›  技术社区  ›  Nigel Thorne

如何访问Cucumber中的场景和示例名称?

  •  9
  • Nigel Thorne  · 技术社区  · 17 年前

    但是,我希望将场景和示例名称传递到我的输出中。

    这可能吗?

    3 回复  |  直到 17 年前
        1
  •  8
  •   Nigel Thorne    17 年前

    找到了。。(在Tim Walker的帮助下)

    Before do |scenario|
     puts "Before Scenario: #{scenario.to_sexp[2]}"
     .
     .
     .
    end
    

    你的性压力可能会有所不同,所以值得做一个测试 scenario.to_sexp.inspect 看看那棵树是什么。

        2
  •  2
  •   MarkusQ    17 年前

    一个更严肃的回答(或者至少是建议):利用ruby的反射来尝试找到你想要的东西。抓取可能的对象,找出它们有什么方法,看看你是否能找到。例如:

    File.open('happy_hunting.log','a') { |f|
        f.print "Scenario supports: #{(scenario.methods - Object.methods).inspect}\n"
        }
    

    然后重复一遍,找出在哪里。

    另一个建议,看看来源。

        3
  •  0
  •   Joviano Dias    12 年前

    我做了一件有争议的事。由于我使用这些信息只是为了调试,所以这将暂时起作用,直到我找到更好的东西。

    @Before
    public void printTestInfoBeforeScenario(Scenario scenario) {
        LOGGER.info("Upcoming Test: "+scenario.getSourceTagNames());
    }
    
    @After
    public void printTestInfoAfterScenario(Scenario scenario) {
        LOGGER.info("Test Complete: " + scenario.getSourceTagNames() + " Status: " + scenario.getStatus());
    }