Cucumber-js: 질문: API μ‚¬μš© λ¬Έμ„œ

에 λ§Œλ“  2018λ…„ 01μ›” 09일  Β·  5μ½”λ©˜νŠΈ  Β·  좜처: cucumber/cucumber-js

λ‚˜λŠ” cypress λ˜λŠ” webdrive.io와 ν•¨κ»˜ 였이-jsλ₯Ό μ‚¬μš©ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. 이λ₯Ό μœ„ν•΄μ„œλŠ” cypress/webdriver.is ν…ŒμŠ€νŠΈ μŠ€μœ„νŠΈ λ‚΄μ—μ„œ 였이-jsλ₯Ό μ‹€ν–‰ν•΄μ•Ό ν•©λ‹ˆλ‹€. κ²€μƒ‰ν–ˆμ§€λ§Œ CLI μ ‘κ·Ό 방식 λŒ€μ‹  APIλ₯Ό 톡해 cucumber-jsλ₯Ό μ‚¬μš©ν•˜λŠ” 방법에 λŒ€ν•œ λ¬Έμ„œλ₯Ό 찾지 λͺ»ν–ˆμŠ΅λ‹ˆλ‹€. λ‚΄κ°€ ν˜„μž¬ μ°Ύκ³  μžˆλŠ” 것:

  • μ‚¬μš©μž μ •μ˜ 동적 세계 전달(단계 λ‚΄μ—μ„œ ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•˜λ €λ©΄ cy λ₯Ό μ°Έμ‘°ν•΄μ•Ό ν•©λ‹ˆλ‹€.)
  • κΈ°λŠ₯ νŒŒμΌμ„ λ™μ μœΌλ‘œ λ‘œλ“œ

λ‚΄κ°€ 찾지 λͺ»ν•œ 이에 λŒ€ν•œ μ†Œλͺ¨μ„± APIκ°€ μžˆμŠ΅λ‹ˆκΉŒ?

documentation

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

λ˜ν•œ 이것을 λ§Œλ‚©λ‹ˆλ‹€. ν˜„μž¬ e2e-testing ν”„λ ˆμž„μ›Œν¬λ₯Ό ꡬ좕 μ€‘μž…λ‹ˆλ‹€. 이 ν”„λ ˆμž„μ›Œν¬λ₯Ό ν…ŒμŠ€νŠΈν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. μ΄λ ‡κ²Œ ν•˜λ €λ©΄ λŸ°νƒ€μž„μ— λŒ€ν•œ API μ•‘μ„ΈμŠ€ κΆŒν•œμ„ κ°–κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. 일뢀 ν΄λž˜μŠ€λŠ” λ¬Έμ„œν™”λ˜μ§€ μ•Šμ•˜κ±°λ‚˜ Typescript μ •μ˜ νŒŒμΌμ— μ •μ˜λ˜μ–΄ μžˆμ§€ μ•Šμ§€λ§Œ λ…ΈμΆœλ˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 이것은 ν΄λž˜μŠ€κ°€ λ…ΈμΆœλ˜λ”λΌλ„ ν”„λ‘œλ•μ…˜μ— μ‚¬μš©λ˜μ§€ μ•ŠλŠ”λ‹€λŠ” 인상을 λ‚¨κΉλ‹ˆλ‹€.

λˆ„κ΅°κ°€ 이 λ¬Έμ œμ— λŒ€ν•œ μ—…λ°μ΄νŠΈλ₯Ό μ œκ³΅ν•˜κ³  λ‚΄ 가정을 ν™•μΈν•˜κ±°λ‚˜ λ°˜λ°•ν•  수 μžˆλ‹€λ©΄ 정말 쒋을 κ²ƒμž…λ‹ˆλ‹€.

λͺ¨λ“  5 λŒ“κΈ€

이것은 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 μ •μ˜ νŒŒμΌμ— μ •μ˜λ˜μ–΄ μžˆμ§€ μ•Šμ§€λ§Œ λ…ΈμΆœλ˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 이것은 ν΄λž˜μŠ€κ°€ λ…ΈμΆœλ˜λ”λΌλ„ ν”„λ‘œλ•μ…˜μ— μ‚¬μš©λ˜μ§€ μ•ŠλŠ”λ‹€λŠ” 인상을 λ‚¨κΉλ‹ˆλ‹€.

λˆ„κ΅°κ°€ 이 λ¬Έμ œμ— λŒ€ν•œ μ—…λ°μ΄νŠΈλ₯Ό μ œκ³΅ν•˜κ³  λ‚΄ 가정을 ν™•μΈν•˜κ±°λ‚˜ λ°˜λ°•ν•  수 μžˆλ‹€λ©΄ 정말 쒋을 κ²ƒμž…λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰