キュウリテストを実行するためのプリセットを設定できる外部モジュールを作成しようとしています。
この外部モジュールには、peerDependencyとして@cucumber/cucumber
があるため、直接インストールされません。 したがって、この依存関係により、プリセットはWorld
コンストラクターを設定し、 Given
、 When
、 Then
をグローバルスコープに追加できるようになります。よりクリーンなステップ定義。
ローカルファイルにcucumber-js --require ./test-preset.setup.js
としてリンクしているcucumber-jsオプションフラグがある場合はすべて機能しますが、同じプリセットに外部モジュールに移動してcucumber-js --require-module cucumber-preset-foo
として要求すると、プロセス#1326で提示されたのと同じエラーで終了します。
これらの外部モジュールがsupportCodeRequiredModules
を介して要求された直後に、 supportCodeLibraryBuilder.reset
が呼び出されているCLIソースコードで何かを見つけることができます。これにより、データがリセットされると、実行中のキュウリインスタンスとの対話が不可避になる可能性があります。直後の。
この設計には特定の理由があるかもしれませんが、モジュールを要求する前にリセットメソッドを呼び出すことによる影響があるかどうかを確認して、これらのポータブルプリセットを利用できるようにしますか? この種の機能は、たとえば、reacte2eなどの特定の開発環境にプリセットを使用したい一部のユーザーに役立つことがわかります。
node: v15.8.0
@cucumber/cucumber: 7.1.0
os: Linux
こんにちは@zanona
あなたのモジュールは面白そうだ
その問題についてのあなたの調査も
あなたはすでに何が起こっているのか、そしてそれがどのように修正されるのかについて良い考えを持っているので、あなたはそのためのPRを開き、それに関する議論をサポートすることができると思いますか?
うーん、require-moduleの直前にリセットを移動しても問題はありません。 それは、トランスパイラー(typescript / babel)をセットアップする主なユースケースを持っていた過去にrequire-moduleが使用されていたものの産物でした。
素晴らしい人に聞こえます。
私は確かにPRを準備することができます、おそらくそれをバグではなく機能としてスコープすることができるので、カスタムプリセットを作成し、テストランナーがそれを理解できることを確認できるユーザーにスコープされたテストを準備できますか?
あるいは、単にこれらの2つの行を交換して、失敗したテストを監視することもできますか?
どのようにそれについて行きたいですか?
キュウリに関しては、通常の方法でモジュールをロードしようとしたときに予期しないエラーが発生するため、これはバグのままです。これは実際には機能するはずです。
ただし、説明したように、スコープテストを使用してPRを拡張としてスコープすることはできます。実際、このアイデアは気に入っています。これには、その問題を修正するメリットもあります。 どう思いますか?
2つのラインを交換する可能性に関しては、それが最初の良い出発点IMOになる可能性があります:)