λλ cypress λλ webdrive.ioμ ν¨κ» μ€μ΄-jsλ₯Ό μ¬μ©νκ³ μΆμ΅λλ€. μ΄λ₯Ό μν΄μλ cypress/webdriver.is ν μ€νΈ μ€μνΈ λ΄μμ μ€μ΄-jsλ₯Ό μ€νν΄μΌ ν©λλ€. κ²μνμ§λ§ CLI μ κ·Ό λ°©μ λμ APIλ₯Ό ν΅ν΄ cucumber-jsλ₯Ό μ¬μ©νλ λ°©λ²μ λν λ¬Έμλ₯Ό μ°Ύμ§ λͺ»νμ΅λλ€. λ΄κ° νμ¬ μ°Ύκ³ μλ κ²:
cy
λ₯Ό μ°Έμ‘°ν΄μΌ ν©λλ€.)λ΄κ° μ°Ύμ§ λͺ»ν μ΄μ λν μλͺ¨μ± APIκ° μμ΅λκΉ?
μ΄κ²μ https://github.com/webdriverio/wdio-cucumber-framework/issues/95 μλ μλΉν κ΄λ ¨μ΄ μλ κ² κ°μ΅λλ€.
λ΄κ° μκ³ μλ μ΄λ€ μμ λ μλ°μ€ν¬λ¦½νΈ APIλ₯Ό μ¬μ©νλ λ°©λ²μ λ¬Έμννλ λ° μ¬μ©λμ§ μμμ΅λλ€. μΌλΆ cli/runtimeμ΄ λ ΈμΆλμ΄ λΉκ΅μ μμ μ μ λλ€.
μ΄μ λν΄ κ° μ μλ ν κ°μ§ λ°©λ²μ μνλ APIμ λν΄ λ Όμν λ€μ μꡬ μ¬ν μ§ν©μ΄ μμΌλ©΄ APIμ λ§κ² λ³κ²½νκ³ λ¬Έμννλ κ²μ λλ€. CLIμ λ°νμ μΈν°νμ΄μ€ μ¬μ΄μ 무μΈκ°κ° νμνλ€κ³ μκ°ν©λλ€.
μ¬μ©μ μ μ λμ μΈκ³λ₯Ό μ λ¬νκΈ° μν΄ μΈκ³ μμ±μλ₯Ό μ€μ νλ κ²κ³Ό λ€λ₯Έ κ²μ μνλ€λ λ§μμ΄μ κ°μ?
κΈ°λ₯μ λμ μΌλ‘ λ‘λνλ λ°©λ²μ λν΄ μμΈν μλ €μ£Όμ€ μ μμ΅λκΉ? μ΄κ²μ CLIμ λͺ¨μ΅κ³Ό λ€λ₯Έ λ°©μμ λκΉ?
webdriver.io μ€μ΄ μ΄λν°μ λν κ²½νλ§ μμ΅λλ€. μ¬κΈ°μ μμ΄λμ΄λ νλ μμν¬ μ΄λν°λ₯Ό ν΅ν΄ APIλ₯Ό ν΅ν΄ μ€μ΄λ₯Ό νΈμΆνλ κΈ°λ³Έ λ¬λλ‘ μ 곡λ WDIO CLIλ₯Ό μ¬μ©νλ κ²μ λλ€.
μ, (μ°λ¦¬ νλ‘μ νΈμμ) μ€μ΄ CLIκ° μ€μ λ¬λμΈ λ©μΈ μλ μΈμ€ν΄μ€λ‘ WDIOλ₯Ό μ¬μ©ν λ μ΄ μμμ΅λλ€. κ·Έλ¬λ WDIOμμ μ¬μ©ν μ μλ νλ μμν¬ μ΄λν°μ μΆμνκ° μμΌλ―λ‘ μ΄λ₯Ό μ¬μ©νλ κ²μ΄ μ’μ΅λλ€. λ€λ₯Έ μ΄λν°λ μ°Έμ‘°νμμμ€. http://webdriver.io/guide/testrunner/frameworks.html
νμ¬ Runtime
ν΄λμ€λ₯Ό μ¬μ©νμ¬ μ€μ΄ 4λ₯Ό μ§μνλλ‘ wdio-cucumber-framework λ₯Ό μ
λ°μ΄νΈ
μλ₯Ό λ€μ΄ μ΄ EventDataCollector κ° μ‘΄μ¬νλ μ΄μ κ° κΆκΈν©λλ€. π. μλ₯Ό λ€μ΄ λ°©μΆλ λͺ¨λ μ΄λ²€νΈμ μ 체 컨ν μ€νΈ(gherkinDocument, currentScenario, currentStep)κ° ν¬ν¨λ νμ΄λ‘λκ° μλ μ΄μ λ 무μμ λκΉ? μ΄κ²μ κ·Έλ¬ν μμ§κ°λ₯Ό μΈλͺ¨μκ² λ§λ€ κ²μ λκΉ? νμ§λ§ μ¬κΈ°μ λ΄κ° λμΉκ³ μλ κ²μ΄ μμμ§λ λͺ¨λ¦ λλ€.
λ€λ₯Έ λ§μ μμ΄λμ΄, μ μ λ° μꡬ μ¬νμ΄ μμ΅λλ€. μ΄κ²μ΄ μ΄λλ‘ κ°λμ§ λ΄ μλ€.
μ΄ λ¬Έμ λ λ€λ₯Έ μ£Όμμμ ν΅ν©μΌλ‘ μΈν΄ μ€λλ μλ λ€μ λνλ¬μ΅λλ€.
APIλ₯Ό μ¬μ©νλ κ²½μ°λ μ¬μ ν μ ν¨ν©λλ€.
κ·Έκ²μ λν μ΄λ€ κ³νμ΄ μμ΅λκΉ?
λν μ΄κ²μ λ§λ©λλ€. νμ¬ e2e-testing νλ μμν¬λ₯Ό κ΅¬μΆ μ€μ λλ€. μ΄ νλ μμν¬λ₯Ό ν μ€νΈνκ³ μΆμ΅λλ€. μ΄λ κ² νλ €λ©΄ λ°νμμ λν API μ‘μΈμ€ κΆνμ κ°κ³ μΆμ΅λλ€. μΌλΆ ν΄λμ€λ λ¬Έμνλμ§ μμκ±°λ Typescript μ μ νμΌμ μ μλμ΄ μμ§ μμ§λ§ λ ΈμΆλκ³ μμ΅λλ€. μ΄κ²μ ν΄λμ€κ° λ ΈμΆλλλΌλ νλ‘λμ μ μ¬μ©λμ§ μλλ€λ μΈμμ λ¨κΉλλ€.
λκ΅°κ° μ΄ λ¬Έμ μ λν μ λ°μ΄νΈλ₯Ό μ 곡νκ³ λ΄ κ°μ μ νμΈνκ±°λ λ°λ°ν μ μλ€λ©΄ μ λ§ μ’μ κ²μ λλ€.
κ°μ₯ μ μ©ν λκΈ
λν μ΄κ²μ λ§λ©λλ€. νμ¬ e2e-testing νλ μμν¬λ₯Ό κ΅¬μΆ μ€μ λλ€. μ΄ νλ μμν¬λ₯Ό ν μ€νΈνκ³ μΆμ΅λλ€. μ΄λ κ² νλ €λ©΄ λ°νμμ λν API μ‘μΈμ€ κΆνμ κ°κ³ μΆμ΅λλ€. μΌλΆ ν΄λμ€λ λ¬Έμνλμ§ μμκ±°λ Typescript μ μ νμΌμ μ μλμ΄ μμ§ μμ§λ§ λ ΈμΆλκ³ μμ΅λλ€. μ΄κ²μ ν΄λμ€κ° λ ΈμΆλλλΌλ νλ‘λμ μ μ¬μ©λμ§ μλλ€λ μΈμμ λ¨κΉλλ€.
λκ΅°κ° μ΄ λ¬Έμ μ λν μ λ°μ΄νΈλ₯Ό μ 곡νκ³ λ΄ κ°μ μ νμΈνκ±°λ λ°λ°ν μ μλ€λ©΄ μ λ§ μ’μ κ²μ λλ€.