我目前正在使用 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/