typescript - 如何将 Hooks(之前/之后)与 cucumber-js-tsflow 一起使用?

标签 typescript cucumberjs

我目前正在使用 cucumber-js-tsflow 在 Typescript 中编写概念验证自动化解决方案,并且我正在尝试复制我之前在使用 Specflow 的其他解决方案中实现的 Hooks 设置。

首先,我想我应该在 features/support/hooks.ts 位置的单独的 hooks 文件中添加一个前后钩子(Hook),因为它是一个概念证明,我只是希望它将一些文本记录到控制台:

import { binding, before, after } from 'cucumber-tsflow';

@binding()
export class Hooks {
  @before()
  public static logMessageToConsoleBeforeTestRun(): void {
    console.log('Before test message.');
  }

  @after()
  public static logMessageToConsoleAfterTestRun(): void {
    console.log('After test message.');
  }
}

当我运行场景时,上面的内容没有将预期的消息记录到控制台。

然后,我尝试通过将上面相同的代码添加到步骤文件而不是 Hook 文件中来简化事情并重新运行,但它仍然没有将预期的消息写入控制台。

在创建上述代码时,我确实遵循了 cucumber-js-tsflow ( https://github.com/timjroberts/cucumber-js-tsflow#readme ) 的自述文件中的文档,但没有大量细节,我真的不确定我可能错过了什么。

其他人有类似的问题并且能够解决吗?

最佳答案

您需要在 hooks 文件中进行 2 处更改: 1) 不要将 hooks 文件创建为类 2)使用以下格式:

let { setDefaultTimeout, After, Before, AfterAll, BeforeAll } = require('cucumber');

Before({tags: '@tagName'}, async function() {

console.log('print your info');
});

当您尝试执行使用上述代码中提到的指定标签名称标记的场景时,将执行此 block 。

关于typescript - 如何将 Hooks(之前/之后)与 cucumber-js-tsflow 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60758671/

相关文章:

javascript - 链接 cucumber 场景

javascript - cucumber JS 超时将不起作用

typescript - 导出 Dynamoose Typescript 模型

typescript - 如何使用TypeScript编写浏览器测试

Protractor/cucumberjs 重新运行失败的测试/ cucumber 功能/规范

javascript - 如何在 cucumber.js 的 AfterStep 钩子(Hook)中获取步骤结果

javascript - 如何将 Jasmine 与 CucumberJS 一起使用?

arrays - typescript :数组类型取决于先前的数组元素

java - Angular 2 + 垂直 x : send-receive body of HTTP requests

typescript - TypeScript 中的 setTimeout 应该使用什么返回类型?