Cucumber-js: 请添加对 TypeScript 的支持

创建于 2015-05-13  ·  33评论  ·  资料来源: cucumber/cucumber-js

我用打字稿创建了一个库,我的测试也是用打字稿编写的。 我真的很想尝试cucumber.js并使用打字稿创建步骤定义文件。 所以你支持coffeescript和js,.ts也不错。

问候

克里斯

最有用的评论

@jbpros自自述文件已更新,这在"cucumber typescript"结果中突出显示,摘录:

转译器

- 步骤定义和支持文件可以用其他语言编写,这些语言可以转换为 javascript。
- 这通过 CLI 选项--compiler <file_extension>:<module_name> 。 对于 CoffeeScript 1.10.0,
- 这是用--compiler coffee:coffee-script/register
步骤定义和支持文件可以用其他可转换为 javascript 的语言编写。 这是通过 CLI 选项--compiler <file_extension>:<module_name>

咖啡脚本

安装coffee-script NPM 包并使用--compiler coffee:coffee-script/register调用 Cucumber。

打字稿

安装typescript-node NPM 包并使用--compiler ts:typescript-node/register调用 Cucumber。

像往常一样,您的所有步骤定义和支持文件都必须导出一个由 Cucumber 运行的函数。 这是在 TS 中完成的方式:

declare var module: any;
module.exports = function () {
 this.Given(/.*/, function () {
   // ...
 })
}

脚本

安装pogo NPM 包并使用--compiler pogo:pogo调用 Cucumber。

所有33条评论

你为什么不发送拉取请求@Chris2011

我将只是这个项目的客户,当我对我使用的每个东西做每个拉取请求时,都有一些缺失,而不是我可以自己创建它。 这只是一个功能请求。 如果有人有时间并愿意这样做,为什么不呢。 我没有,因为我没有时间,我有相同的正常工作和其他项目,并且不想成为我使用的每个项目的贡献者。 Sry 可能是严厉的话,但对我来说,很明显不可能成为我使用的每个项目的贡献者。 我必须了解来源等等。

我明白@Chris2011。 也许有一天有人会决定花时间来实现这一点,因为他们想帮助你,或者只是为了好玩。

更现实的情况是,此功能请求保持开放状态,直到有人需要它愿意花时间和精力来实现它并发送 PR。

也许。 谢谢你的意见。 在我看来,要求此功能是合乎逻辑的,因为 TS 将在 1 或 2 年内更受欢迎。 当您或任何人也决定实施 coffeescript 时,为什么不也使用 typescript 呢?

多谢。 我们会看看会发生什么......

一般来说 - 就像格式化程序一样 - 我希望语言/方言支持成为 3rd 方插件而不是核心的一部分(包括当前的 CoffeeScript 和 PogoScript)。

+1

+1

喜欢它,请做一段时间!!!

:+1:

再多的 +1 或 :+1: 都无法实现。 有人必须提交拉取请求。

:+1: @aslakhellesoy现场

:8ball: @samccone

@jbpros @aslakhellesoy支持第 3 方语言的唯一方法是实施修改方法:

SupportCodePathExpander.SUPPORT_CODE_FILES_IN_DIR_REGEXP = /\.(js|coffee|pogo)$/;

然后任何人都可以在support/env.js注册任何转译器,例如
也许这个正则表达式应该被删除?

我很高兴看到这个。 我可以找到 coffeeScript 功能文件,但找不到步骤定义的实现位置,请有人给我一些关于需要做什么的指示吗?

@SeanFarrow我已经在本地完成了。 您只需修改/lib/cucumber//cli/argument_parser/support_code_path_expander.js:12然后通过 require 钩子添加任何转译器

你要发公关吗?

来自:Aleh Kashnikau [mailto:[email protected]]
发送时间:2015 年 8 月 16 日 19:15
至:cucumber/cucumber-js [email protected]
抄送:肖恩法罗肖恩。 [email protected]
主题: Re: [cucumber-js] 请添加对 TypeScript 的支持 (#335)

@SeanFa rrowhttps://github.com/SeanFarrow我已经在本地完成了。 您只需修改 /lib/cucumber//cli/argument_parser/support_code_path_expander.js:12 然后通过 require 钩子添加任何转译器


直接回复本邮件或在 Gi tHub上查看

@mkusher还有更多。 为了完整起见,步骤定义片段也应该在附加语言中可用(目前没有为 PogoScript 完成),请参阅 CLI --coffee标志。

无论如何,我真的希望这可以通过插件/转译器系统完成,并从核心中删除所有方言(包括coffeescript)。

我不明白为什么甚至需要特定语言的支持? 作为构建过程的一部分,您不只是将步骤定义转换为 JavaScript 吗?

398 应该使支持任何转译器变得简单

是的,#398 会解决这个问题。

@henrify唯一“需要”添加到 Cucumber 的是对其他语言的步骤定义片段支持。 目前,默认情况下它们在 vanilla JS 中,并且可以使用--coffee CLI 标志在 CS 中输出。

我们可能会完全删除非 JS 片段(包括 CS?)。 想法?

398 已合并,将在下一个版本中可用。 TypeScript 支持记录在 README 中

@jbpros自自述文件已更新,这在"cucumber typescript"结果中突出显示,摘录:

转译器

- 步骤定义和支持文件可以用其他语言编写,这些语言可以转换为 javascript。
- 这通过 CLI 选项--compiler <file_extension>:<module_name> 。 对于 CoffeeScript 1.10.0,
- 这是用--compiler coffee:coffee-script/register
步骤定义和支持文件可以用其他可转换为 javascript 的语言编写。 这是通过 CLI 选项--compiler <file_extension>:<module_name>

咖啡脚本

安装coffee-script NPM 包并使用--compiler coffee:coffee-script/register调用 Cucumber。

打字稿

安装typescript-node NPM 包并使用--compiler ts:typescript-node/register调用 Cucumber。

像往常一样,您的所有步骤定义和支持文件都必须导出一个由 Cucumber 运行的函数。 这是在 TS 中完成的方式:

declare var module: any;
module.exports = function () {
 this.Given(/.*/, function () {
   // ...
 })
}

脚本

安装pogo NPM 包并使用--compiler pogo:pogo调用 Cucumber。

真的需要使用 typescript-node 吗? 是否可以使用官方支持的 tsc 而不是 typescript-node? 我不知道这些区别,但 tsc 是微软官方支持的。

@Chris2011 ts-node只是 node.js 的一个注册钩子,它将通过 tsc 运行编译

好的谢谢。

@JoshuaKGoldberg摘录来自哪里? 我的搜索未能找到它。

使用打字稿指导您使用 cucumberjs 的示例:
https://github.com/AbraaoAlves/cucumber-protractor-typescript-boilerplate

感谢@AbraaoAlves提供示例。
不幸的是,它只适用于cucumberjs 1。量角器-cucumber-framework 层与cucumber2 rcs 不兼容。

如何在黄瓜报告中附加屏幕截图。 我正在使用打字稿语言。 请任何人帮助我。

请确认是否会出现黄瓜+量角器+打字稿兼容性问题......因为我们计划在我们的实现中使用组合......

@拉贾兹潘迪
After做这样的事情

driver.takeScreenshot().then(data => {
        attach(new Buffer(data, 'base64'), 'image/png');
      }).catch(error => {
        info(error);
        throw error;
      });

由于关闭后没有任何近期活动,因此该线程已自动锁定。 请为相关错误打开一个新问题。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

jbpros picture jbpros  ·  31评论

davidjgoss picture davidjgoss  ·  29评论

osher picture osher  ·  16评论

jeffmath picture jeffmath  ·  48评论

manu7691 picture manu7691  ·  37评论