0

私が取り組んでいるプロジェクトのエンド ツー エンド テスト用に、typescript に基づいて Cypress と CucumberJs をセットアップしました。

たまたま 2 つの異なる機能ファイルがbus.featureありcar.feature、それらのステップ定義ファイルbus.spec.tscar.spec.ts

私は2つの異なるステップ定義を持っています:

Then(
  'I {string} the Destination page', (operation: operation) => {
    cy.location().should(location => {
      switch (operation) {
        case 'visit':
          expect(location.pathname).to.eq('/e2e/destination')
          break

        case `can't visit`:
          expect(location.pathname).to.eq('/e2e/bus')
          break
      }
    })
  }
)

Then(
  'I {string} the Destination page', (operation: operation) => {
    cy.location().should(location => {
      switch (operation) {
        case 'visit':
          expect(location.pathname).to.eq('/e2e/destination')
          break

        case `can't visit`:
          expect(location.pathname).to.eq('/e2e/car')
          break
      }
    })
  }
)

認識文字列は同じですが'I {string} the Destination page'、実装がわずかに異なります (たとえば、 case can't visit)。

テストを実行すると、bus完全に完全に実行されます。

どちらのcarテストでも認識文字列が同じであるため、Cypress + CucumberJs スイートは最初の定義のみを検出し、適切なbus定義を無視するため、問題がcarあります。

理由はわかりました。最初のものが検出され、それだけです。質問は、異なるファイルのコンテキストを分離する方法があるので、異なる実装で同じ定義名を持つこともできるのでしょうか?

前もって感謝します

4

1 に答える 1