gpt4 book ai didi

ruby - cucumber : I want to send report on email after my all the scenario get executed, 有没有像 'AfterAll' 这样的方法可以在 hooks.rb 中使用

转载 作者:行者123 更新时间:2023-12-04 10:37:56 25 4
gpt4 key购买 nike

我创建了邮件功能来发送我的报告

class Email
include PageObject
require 'mail'

def mailsender
Mail.defaults do
delivery_method :smtp,{
address: "smtp.gmail.com",
openssl_verify_mode: "none",
port: 587,
domain: 'gmail.com',
user_name: 'xxxxxxxx@gmail.com' ,
password: '*******' ,
authentication: 'plain'
}
end

Mail.deliver do
from 'xxxxxxx.com'
to 'xxxxx@test.com'
subject 'Execution report'
body 'PFA'
add_file 'Automation_report.html'
end
end
end


我希望这个函数在所有场景都被执行后执行。

这是我的钩子(Hook)文件
# frozen_string_literal: true

require watir

Before do |scenario|
DataMagic.load_for_scenario(scenario)
@browser = Watir::Browser.new :chrome
@browser.driver.manage.window.maximize
end

After do |scenario|
if scenario.failed?
screenshot = "./screenshot.png"
@browser.driver.save_screenshot(screenshot)
embed(screenshot, "image/png",)
end
@browser.close
end

如果我在 After do 中使用此功能,那么它会在每个场景执行后每次发送电子邮件

最佳答案

您可以使用 at_exit在 hooks.rb 文件中。

at_exit do
# your email logic goes here
end


附加说明: After hook 将在每个场景之后执行,这就是它在每个场景执行后发送电子邮件的原因。另一方面 at_exit只有在所有场景都执行完毕后才会执行钩子(Hook)。

您可以直接在 at_exit 中实现电子邮件逻辑钩。如果您想调用 mailsender 方法并且无法在 at_exit 中访问它hook 然后您可以创建电子邮件类/模块,如下所示。

考虑到您在 GenericModules 下有电子邮件模块
module GenericModules
module Email
def mailsender
# implement your logic here
end
end
end

然后将Email模块添加到 worldenv.rb如下所示。
World(GenericModules::Email)

现在您应该可以在 at_exit 中访问该方法了。钩。

关于ruby - cucumber : I want to send report on email after my all the scenario get executed, 有没有像 'AfterAll' 这样的方法可以在 hooks.rb 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60076256/

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