Cucumber-js: TypeScriptのサポートを追加してください

作成日 2015年05月13日  ·  33コメント  ·  ソース: cucumber/cucumber-js

私はtypescriptでlibを作成し、テストもtypescriptで記述されています。 私は本当にcucumber.jsを試して、typescriptを使用してステップ定義ファイルを作成したいと思います。 したがって、coffeescriptとjsをサポートしているので、.tsもいいでしょう。

よろしく

クリス

最も参考になるコメント

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>ます。

CoffeeScript

Coffee-Script NPMパッケージをインストールし、 --compiler coffee:coffee-script/register Cucumberを呼び出します。

TypeScript

typescript-node NPMパッケージをインストールし、 --compiler ts:typescript-node/register Cucumberを呼び出します。

いつものように、すべてのステップ定義とサポートファイルは、Cucumberによって実行される関数をエクスポートする必要があります。 これはTSで行われる方法です:

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

PogoScript

pogo NPMパッケージをインストールし、 --compiler pogo:pogo Cucumberを呼び出します。

全てのコメント33件

プルリクエストを送信してみませんか@ Chris2011

私はこのプロジェクトの顧客にすぎません。私が使用しているものごとにプルリクエストを実行し、自分で作成できるよりも不足しているものがあります。 機能リクエストのみです。 誰かに時間があり、それをやりたいのなら、どうしてですか。 私は時間がないので、私は同じ通常の仕事と他のプロジェクトを持っていて、私が使用する各プロジェクトの貢献者になりたくありません。 厳しい言葉を恐れるかもしれませんが、私にとっては、私が使用している各プロジェクトに貢献することは不可能であることは明らかです。 ソースなどを理解する必要があります。

@ Chris2011を理解しました。 たぶんいつか誰かがあなたを助けたいので、あるいはただ楽しみのためにこれを実行するのに時間を費やすことを決めるでしょう。

より現実的なシナリオは、誰かがそれを実装してPRを送信するために時間と労力を費やすことをいとわないほど十分にそれを必要とするまで、この機能要求は開いたままであるということです。

多分。 あなたの意見のためのThx。 私の見解では、TSは1年または2年で人気が高まるため、この機能を要求するのは論理的でした。 そして、あなたや誰でもコーヒースクリプトを実装することに決めたとき、なぜタイプスクリプトもしないのですか?

ありがとう。 何が起こるか見ていきます...

一般的に、フォーマッターと同じように、コアの一部(現在のCoffeeScriptとPogoScriptを含む)ではなく、サードパーティのプラグインとして言語/方言をサポートしたいと思います。

TS +1

+1

それのように、plsはいつかそれをします!!!

:+1:

+1または:+1:の量はこれを実現しません。 誰かがプルリクエストを送信する必要があります。

:+1: @aslakhellesoyスポット

:8ball: @samccone

@jbpros @aslakhellesoyサードパーティの言語をサポートするために実行する必要があるのは、変更する方法を実装することだけです。

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フックを介してトランスパイラーを追加するだけです。

あなたはPRを送るつもりですか?

差出人:Aleh Kashnikau [mailto:[email protected]]
送信日:2015年8月16日19:15
宛先:cucumber / cucumber-js [email protected]
Cc:ショーンファローショーン。 [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 tHubhttps://github.com/cucumber/cucumber-js/issues/335#issuecomment-131598410で表示してください。

@mkusherそれ--coffeeフラグを参照してください。

とにかくプラグイン/トランスパイラーシステムを介してこれを実行し、コアからすべての方言(コーヒースクリプトを含む)を削除したいと思います。

言語固有のサポートが必要な理由がわかりませんか? ビルドプロセスの一部として、ステップ定義をJavaScriptにトランスパイルするだけではありませんか?

398は、トランスパイラーのサポートを簡単にする必要があります

はい、#398で修正されます。

@henrify Cucumberに追加する必要があるのは、他の言語のステップ定義スニペットのサポートだけです。 現在、これらはデフォルトでバニラJSにあり、 --coffee CLIフラグを使用してCSで出力できます。

JS以外のスニペットを完全に削除する可能性があります(CSを含む?)。 考え?

398は統合され、次のリリースで利用できるようになります。 TypeScriptのサポートについては、READMEに記載されています

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>ます。

CoffeeScript

Coffee-Script NPMパッケージをインストールし、 --compiler coffee:coffee-script/register Cucumberを呼び出します。

TypeScript

typescript-node NPMパッケージをインストールし、 --compiler ts:typescript-node/register Cucumberを呼び出します。

いつものように、すべてのステップ定義とサポートファイルは、Cucumberによって実行される関数をエクスポートする必要があります。 これはTSで行われる方法です:

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

PogoScript

pogo NPMパッケージをインストールし、 --compiler pogo:pogo Cucumberを呼び出します。

typescript-nodeを使用する必要が本当にありますか? typescript-nodeの代わりに公式にサポートされているtscを使用することは可能ですか? 違いはわかりませんが、tscはMicrosoftから公式にサポートされています。

@ Chris2011 ts-nodeは、tscを介してコンパイルを実行するnode.jsの単なるレジスタフックです。

OKthx。

@JoshuaKGoldbergどこからの抜粋ですか? 私の検索はそれを見つけることができませんでした。

typescriptを使用してcucumberjsをガイドするサンプル:
https://github.com/AbraaoAlves/cucumber-protractor-typescript-boilerplate

サンプルを提供してくれた
残念ながら、それはcucumberjs1でのみ機能します。分度器-cucumber-frameworkレイヤーはcucumber2rcsと互換性がありません。

きゅうりレポートにスクリーンショットを添付する方法。 私はtypescript言語を使用しています。 誰か助けてください。

今後、cucumber + Protractor + Typescriptの互換性の問題が発生するかどうかを確認してください...実装にはこの組み合わせを使用する予定です。

@Rajazpandi
Afterこのようなことをしてください

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

このスレッドは、閉じられた後、最近のアクティビティがないため、自動的にロックされています。 関連するバグについては、新しい問題を開いてください。

このページは役に立ちましたか?
0 / 5 - 0 評価