- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在实现 Cucumber Testng 以用于学习目的。我已经意识到 @After 钩子(Hook)方法执行了两次。我可以通过调试集和测试报告输出来确认它。我只运行 1 个功能文件,我的测试报告显示两个具有相同类名的条目。
有谁知道为什么?
代码:
@After
public void tearDown(Scenario scen) throws IOException {
ExtentTest logger = reportMgr.getLogger();
String feature = getClass().getName() + " Feature"; //+ "." + Thread.currentThread().getStackTrace()[1].getMethodName().toString();
logger = reportMgr.getExtent().createTest(feature);
String screenShot = CaptureScreenshot.captureScreen(WebDriverManager.driver, CaptureScreenshot.generateFileName(feature));
if (!scen.isFailed()) {
logger.pass("Pass");
logger.addScreenCaptureFromPath(screenShot);
} else {
logger.fail("Fail");
logger.addScreenCaptureFromPath(screenShot);
}
}
@Login_Valid Feature: Login to Volare Collector Description: As a user, I want login to Volare Collector
Scenario: Valid Login
Given Volare Collector Home Page opens in browser
When I login to Volare Collector with Username and Password
Then Page navigate to Volare Collector Home Page
最佳答案
testng.xml
调用TestRunner
类(class)。在 cucumberoptions
有没有 tags option
,因此没有基于标签的过滤。因此它将拿起所有功能文件在 features
中给出的文件夹中选项 - "src/Features"
IE。 Login.feature 和 Logout.feature。
每个功能文件都有 每个场景一个 .因此有共2个场景因此将运行 2 个测试。这解释了为什么您会看到 报告中的 2 个测试 .
当每个场景运行时,它们将运行任何当前的 Before and After hooks
.所以对于 2个场景,钩子(Hook)会运行两次 .
钩子(Hook)还有 全局 本质上,即只要它们出现在glue(glue = {"Step_Definitions"})
中定义的选项中的任何类中他们会被接走。在您的情况下,您有 两个前 Hook 在 Login 和 Logout 类中,你可能想看看修复它。使用 Before 钩子(Hook)并在 value 选项中将标签过滤器传递给它。
在 单后钩在 Login
中定义对这段代码进行分类
String feature = getClass().getName();
logger = reportMgr.getExtent().createTest(feature);
Step_Definitions.Login
.因此它显示为
2 个名称相同但名称不同的测试 .
关于testng - Cucumber-JVM:Cucumber 的 @After 钩子(Hook)被执行了两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49791109/
我是一名优秀的程序员,十分优秀!