Cucumber-js: μΆœμ‹œ μ‹œκ°„? `message` 포맷터가 μ΅œμ‹  λ²„μ „μ—μ„œλŠ” μž‘λ™ν•˜μ§€ μ•Šμ§€λ§Œ `master`μ—μ„œλŠ” μž‘λ™ν•©λ‹ˆλ‹€.

에 λ§Œλ“  2020λ…„ 06μ›” 22일  Β·  14μ½”λ©˜νŠΈ  Β·  좜처: cucumber/cucumber-js

μ•ˆλ…•ν•˜μ„Έμš”,

μ΅œμ‹  λ¦΄λ¦¬μŠ€μ—μ„œλŠ” λΆˆν–‰νžˆλ„ message 포맷터가 μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. master μ—μ„œ μž‘λ™ν•©λ‹ˆλ‹€. μ΄λŠ” 쒋은 μ†Œμ‹μž…λ‹ˆλ‹€. λ°œλ§€μ‹œκΈ°κ°€ μ’‹κ² μ£ ? :)

κ°μ‚¬ν•©λ‹ˆλ‹€ πŸ’œ

fixed-in-7

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

@aslakhellesoy μ €λŠ” μ§€κΈˆ #1318μ—μ„œ CCK에 λŒ€ν•œ μœ νš¨μ„± 검사λ₯Ό μΆ”κ°€ν•˜κ³  μ΅œμ‹  μž‘μ€ 였이, λ©”μ‹œμ§€ 등에 λŒ€ν•œ μ—…λ°μ΄νŠΈλ₯Ό μž‘μ—… μ€‘μž…λ‹ˆλ‹€. μ–Όλ§ˆ 남지 μ•Šμ€ λ‚˜λ¨Έμ§€ 간격을 톡해 μž‘μ—…ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒ λ©°μΉ  μ•ˆμ— μ™„λ£Œν•˜λŠ” 것을 λͺ©ν‘œλ‘œ ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” μš°λ¦¬κ°€ κ·Έ 이후에 7.0.0을 μΆœμ‹œν•˜κΈ°μ— 쒋은 μƒνƒœκ°€ 될 것이라고 μƒκ°ν•©λ‹ˆλ‹€.

μ‹€μ œλ‘œ javascript CCK νŒ¨ν‚€μ§€λ‘œ μ˜λ„λ₯Ό ν™•μΈν•˜κ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€. μ–Όλ§ˆμ „ @cucumber/compatibility-kit μ•„λž˜ npm에 κ²Œμ‹œλ˜μ—ˆμ§€λ§Œ ν•œλ™μ•ˆ μ—…λ°μ΄νŠΈλ˜μ§€ μ•Šμ€ κ²ƒμœΌλ‘œ λ‚˜νƒ€λ‚¬μŠ΅λ‹ˆλ‹€. μ§€κΈˆμ€ μž‘μ—…ν•  λͺ¨λ…Έλ¦¬ν¬μ§€ν† λ¦¬μ—μ„œ νŒŒμΌμ„ λ³΅μ‚¬ν•˜κ³  μžˆμ§€λ§Œ CCK κΈ°λŠ₯κ³Ό λ©”μ‹œμ§€ κ³ μ • μž₯치λ₯Ό μ’…μ†μ„±μœΌλ‘œ μ‚¬μš©ν•˜λŠ” 것이 쒋은 방법인 것 κ°™μŠ΅λ‹ˆλ‹€.

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

μ•ˆλ…•ν•˜μ„Έμš” @sroze - μƒμ„±λœ λ©”μ‹œμ§€λ₯Ό μ†ŒλΉ„μžμ™€ ν•¨κ»˜ ν…ŒμŠ€νŠΈν•΄

μƒμ„±λœ 좜λ ₯이 λ‹€μŒκ³Ό ν•¨κ»˜ μž‘λ™ν•˜λŠ”μ§€ ν™•μΈν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

@vincent-psarga - monorepo λΉŒλ“œμ˜ μΌλΆ€λ‘œ 이것을 κ²€μ¦ν•˜κΈ° μœ„ν•΄ cckλ₯Ό μ—…λ°μ΄νŠΈν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

릴리슀λ₯Ό 자λ₯΄κΈ° 전에 λ‹€μŒμ„ μ—…κ·Έλ ˆμ΄λ“œν•΄μ•Ό ν•©λ‹ˆλ‹€.

  • "cucumber-expressions": "^8.3.0" -> "@cucumber/cucumber-expressions": "^10.2.0"
  • "cucumber-messages": "^8.0.0" -> "@cucumber/messages": "^12.1.1"
  • "cucumber-tag-expressions": "^2.0.3" -> "@cucumber/tag-expressions": "^3.0.0"
  • "gherkin": "^9.0.0" -> "@cucumber/gherkin": "^13.0.0"

μ΄λŸ¬ν•œ μ—…κ·Έλ ˆμ΄λ“œ 없이 λ¦΄λ¦¬μŠ€κ°€ λ§Œλ“€μ–΄μ§€λ©΄ message 포맷터에 μ˜ν•΄ μƒμ„±λœ λ©”μ‹œμ§€λŠ” cucumber-html , json-formatter 의 μ΅œμ‹  릴리슀 및 @cucumber/messages 의 μ΅œμ‹  버전. 그리고 그것은 λ‚΄κ°€ μƒκ°ν•˜λŠ” λˆ„κ΅¬μ—κ²Œλ„ μœ μš©ν•˜μ§€ μ•Šμ„ κ²ƒμž…λ‹ˆλ‹€.

@aslakhellesoy μ‹€μ œλ‘œ μžλ™ 생성 λ¬Έμ„œ(mkdocs용 ν”ŒλŸ¬κ·ΈμΈ)에 ν†΅ν•©ν•˜κΈ° μœ„ν•΄ 자체 νŒŒμ„œμ™€ ν•¨κ»˜ μ‚¬μš©ν•˜κ³  μžˆμœΌλ―€λ‘œ --format message:output.ndjson ν•˜κ³  ν•΄λ‹Ή output.ndjson νŒŒμΌμ„ 읽고 μžˆμŠ΅λ‹ˆλ‹€. μ§€κΈˆκΉŒμ§€λŠ” λ„ˆλ¬΄ μ’‹μ•˜μŠ΅λ‹ˆλ‹€. 이전 JSON 좜λ ₯보닀 훨씬 λ‚«μŠ΅λ‹ˆλ‹€. πŸ‘Œ

@vincent-psarga - monorepo λΉŒλ“œμ˜ μΌλΆ€λ‘œ 이것을 κ²€μ¦ν•˜κΈ° μœ„ν•΄ cckλ₯Ό μ—…λ°μ΄νŠΈν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

λ‚΄κ°€ 이것을 μ˜¬λ°”λ₯΄κ²Œ μ΄ν•΄ν•˜κ³  μžˆλŠ”μ§€ ν™•μΈν•˜κΈ° μœ„ν•΄ messages λ¦΄λ¦¬μŠ€μ— λŒ€ν•΄ μ΅œμ‹  릴리슀 xxx-formatter λ₯Ό μ‹€ν–‰ν•˜μ—¬ 포맷터 릴리슀λ₯Ό κ±΄λ„ˆλ›°μ§€ μ•Šλ„λ‘ ν•˜μ‹œκ² μŠ΅λ‹ˆκΉŒ?
그것은 ν™•μ‹€νžˆ μ˜λ―Έκ°€ μžˆμŠ΅λ‹ˆλ‹€. 그것이 CCK의 일뢀인지 μ•„λ‹ˆλ©΄ 각 포맷터에 λŒ€ν•œ 두 번째 CI μž‘μ—…μ˜ μΌλΆ€μΈμ§€λŠ” λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€.

@sroze μ•„μ£Ό λ©‹μ Έμš”! @cucumber/messages λΌμ΄λΈŒλŸ¬λ¦¬μ—μ„œ 8.0.0 μ—μ„œ 12.1.1 이전 버전과 ν˜Έν™˜λ˜μ§€ μ•ŠλŠ” λ³€κ²½ 사항이 μžˆμŒμ„ λͺ…μ‹¬ν•˜μ‹­μ‹œμ˜€. 이름도 λ³€κ²½λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 그것에 μ˜μ‘΄ν•˜λŠ” λͺ¨λ“  λΌμ΄λΈŒλŸ¬λ¦¬λ„ μ—…λ°μ΄νŠΈν•΄μ•Ό ν•©λ‹ˆλ‹€.

λ‹€λ₯Έ Cucumber κ΅¬ν˜„(JVM/Java 및 Ruby)은 μ΅œμ‹  λ²„μ „μ˜ λ©”μ‹œμ§€ 라이브러리λ₯Ό μ‚¬μš©ν•˜λ―€λ‘œ λ„κ΅¬μ—μ„œ 이λ₯Ό μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

@sroze ν”„λ‘œμ νŠΈμ— λŒ€ν•œ 링크가 μžˆμŠ΅λ‹ˆκΉŒ?

@vincent-psarga λ‚˜λŠ” 였이.jsκ°€ 우리의 cck와 ν˜Έν™˜λ˜λŠ”μ§€ 확인할 수 μžˆλ‹€κ³  μ œμ•ˆν–ˆμŠ΅λ‹ˆλ‹€. μš°λ¦¬λŠ” 단계 μ •μ˜λ₯Ό κ΅¬ν˜„ν•˜κ³  λ©”μ‹œμ§€ 포맷터와 ν•¨κ»˜ cucumber.jsλ₯Ό μ‹€ν–‰ν•œ λ‹€μŒ json-formatter와 html-formatterκ°€ ν•΄λ‹Ή λ©”μ‹œμ§€λ₯Ό μ‚¬μš©ν•  수 μžˆλŠ”μ§€ 확인해야 ν•©λ‹ˆλ‹€.

μš°λ¦¬λŠ” 이미 였이-루비와 였이-jvm에 λŒ€ν•΄ 이것을 ν•˜κ³  μžˆμ§€ μ•ŠμŠ΅λ‹ˆκΉŒ?

μ•„ 그래, μš°λ¦¬κ°€ cucumber-js μ €μž₯μ†Œμ— μžˆλŠ” 것을 보지 λͺ»ν–ˆλ‹€(μ „ν™”λ‘œ μ•Œλ¦Όμ„ 확인할 λ•Œμ˜ 문제...).

λ‚˜λŠ” 그것이 κ°€λŠ₯ν•˜λ‹€κ³  μƒκ°ν•˜μ§€λ§Œ λͺ¨λ…Έλ ˆν¬ μžμ²΄μ—μ„œ, 이 λ¦¬ν¬μ§€ν† λ¦¬μ—μ„œ 더 많이 ν•΄μ•Ό ν•˜λŠ”μ§€ 확신이 μ„œμ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ£¨λΉ„μ˜ 경우 CCK에 λŒ€ν•΄ 두 가지 μœ νš¨μ„± 검사가 μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

  • ν•˜λ‚˜λŠ” cucumber-ruby μ—μ„œ μˆ˜ν–‰λ˜μ–΄ μ΅œμ‹  λ©”μ‹œμ§€ λ¦΄λ¦¬μŠ€μ— λŒ€ν•΄ 였이-루비 λ§ˆμŠ€ν„°μ˜ μœ νš¨μ„±μ„ κ²€μ‚¬ν•©λ‹ˆλ‹€(κ·ΈλŸ¬λ‚˜ json-formatter 및 html-formatter λ§ˆμŠ€ν„° μ‚¬μš©).
  • ν•˜λ‚˜λŠ” ν˜„μž¬ λ©”μ‹œμ§€ λ§ˆμŠ€ν„°μ™€ cucumber-ruby μ΅œμ‹  릴리슀λ₯Ό μ‚¬μš©ν•˜λŠ” λͺ¨λ…Έλ ˆν¬μ—μ„œ μˆ˜ν–‰λ©λ‹ˆλ‹€. 였이-λ£¨λΉ„μ˜ μ§€μ›λ˜λŠ” λ©”μ‹œμ§€ 버전 간에 λΆˆμΌμΉ˜κ°€ μžˆμ—ˆκΈ° λ•Œλ¬Έμ— λΉ„ν™œμ„±ν™”ν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€(λ‹€μ‹œ ν™œμ„±ν™”ν•  수 μžˆμ§€λ§Œ λ‹€μŒ λ©”μ‹œμ§€ 릴리슀 후에 λ‹€μ‹œ λΉ„ν™œμ„±ν™”ν•΄μ•Ό 함).

그리고 λ‚΄κ°€ κΈ°μ–΅ν•˜λŠ” ν•œ, JS λ‹¨κ³„λŠ” 이미 fake-cucumber μ‚¬μš©ν•˜μ—¬ ν™©κΈˆ NDJson을 μƒμ„±ν•˜κΈ° μœ„ν•΄ κ΅¬ν˜„λ˜μ—ˆμœΌλ―€λ‘œ 이 뢀뢄은 거의 μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€(κ°€μ Έμ˜€κΈ°λ§Œ μ—…λ°μ΄νŠΈν•΄μ•Ό ν•  μˆ˜λ„ 있음)

@aslakhellesoy μ €λŠ” μ§€κΈˆ #1318μ—μ„œ CCK에 λŒ€ν•œ μœ νš¨μ„± 검사λ₯Ό μΆ”κ°€ν•˜κ³  μ΅œμ‹  μž‘μ€ 였이, λ©”μ‹œμ§€ 등에 λŒ€ν•œ μ—…λ°μ΄νŠΈλ₯Ό μž‘μ—… μ€‘μž…λ‹ˆλ‹€. μ–Όλ§ˆ 남지 μ•Šμ€ λ‚˜λ¨Έμ§€ 간격을 톡해 μž‘μ—…ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒ λ©°μΉ  μ•ˆμ— μ™„λ£Œν•˜λŠ” 것을 λͺ©ν‘œλ‘œ ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” μš°λ¦¬κ°€ κ·Έ 이후에 7.0.0을 μΆœμ‹œν•˜κΈ°μ— 쒋은 μƒνƒœκ°€ 될 것이라고 μƒκ°ν•©λ‹ˆλ‹€.

μ‹€μ œλ‘œ javascript CCK νŒ¨ν‚€μ§€λ‘œ μ˜λ„λ₯Ό ν™•μΈν•˜κ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€. μ–Όλ§ˆμ „ @cucumber/compatibility-kit μ•„λž˜ npm에 κ²Œμ‹œλ˜μ—ˆμ§€λ§Œ ν•œλ™μ•ˆ μ—…λ°μ΄νŠΈλ˜μ§€ μ•Šμ€ κ²ƒμœΌλ‘œ λ‚˜νƒ€λ‚¬μŠ΅λ‹ˆλ‹€. μ§€κΈˆμ€ μž‘μ—…ν•  λͺ¨λ…Έλ¦¬ν¬μ§€ν† λ¦¬μ—μ„œ νŒŒμΌμ„ λ³΅μ‚¬ν•˜κ³  μžˆμ§€λ§Œ CCK κΈ°λŠ₯κ³Ό λ©”μ‹œμ§€ κ³ μ • μž₯치λ₯Ό μ’…μ†μ„±μœΌλ‘œ μ‚¬μš©ν•˜λŠ” 것이 쒋은 방법인 것 κ°™μŠ΅λ‹ˆλ‹€.

@davidjgossμ—κ²Œ κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€. μƒˆ 버전을 μ‚¬μš©ν•  수 있기λ₯Ό κΈ°λŒ€ν•©λ‹ˆλ‹€. 이 μž‘μ—…μ΄ μˆ˜ν–‰λ˜λŠ” λ™μ•ˆ cucumber-js 의 master 버전을 μ‚¬μš©ν•˜κΈ° μœ„ν•΄ μˆ˜ν–‰ν•΄μ•Ό ν•˜λŠ” μž‘μ—…μž…λ‹ˆλ‹€. μ£Όμš” λ¬Έμ œλŠ” npm i λ‹€μ‹œ μ‹€ν–‰ν•  λ•Œλ§ˆλ‹€ npm κ°€ node_modules/cucumber κ°€ Git μ €μž₯μ†ŒλΌκ³  λΆˆν‰ν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. 더 쒋은 방법을 μ•Œκ³  μžˆμŠ΅λ‹ˆκΉŒ? πŸ€”

diff --git a/package.json b/package.json
index e78cd20..8702cb7 100644
--- a/package.json
+++ b/package.json
@@ -30,7 +30,8 @@
     "typeorm": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js -f src/orm-migratio
ns-config.ts",
     "typeorm:migrate": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js -f src/orm-
migrations-config.ts migration:run",
     "typeorm:revert": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js -f src/orm-m
igrations-config.ts migration:revert",
-    "pod:migrate": "node ./node_modules/typeorm/cli.js -f dist/orm-migrations-config.js migration:run"
+    "pod:migrate": "node ./node_modules/typeorm/cli.js -f dist/orm-migrations-config.js migration:run",
+    "postinstall": "cd node_modules && mv cucumber cucumber-old && git clone https://github.com/cucumber/cucumber-js && mv cucumber-js cucumber && cd cucumber && npm i && npm run build-local && cd ../.."
   },
   "dependencies": {
@@ -86,7 +87,7 @@
     "@typescript-eslint/eslint-plugin": "^3.4.0",
     "@typescript-eslint/parser": "^3.4.0",
     "common-tags": "^1.8.0",
-    "cucumber": "^6.0.5",
+    "cucumber": "cucumber/cucumber-js#master",
     "cucumber-pretty": "^6.0.0",
     "cucumber-tsflow": "^3.2.0",
     "eslint": "^7.3.1",

릴리슀λ₯Ό 자λ₯΄κΈ° μœ„ν•΄ μ§œμ¦μ„ λ‚΄κ³  λ‹€μŒμ„ 따라가도 λ κΉŒμš”?

  1. βœ… @aslakhellesoy 쒅속성이 μ‹€μ œλ‘œ μ—…κ·Έλ ˆμ΄λ“œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.
  2. βœ… CCK에 λŒ€ν•œ @davidjgoss 의 (λŒ€λŸ‰) μž‘μ—…μ΄ λ³‘ν•©λ˜μ—ˆμŠ΅λ‹ˆλ‹€( testResult -> testStepResult 문제λ₯Ό μ˜¬λ°”λ₯΄κ²Œ 식별함)

μš°λ¦¬λŠ” μ‹€μ œλ‘œ @sroze 릴리슀λ₯Ό μ€‘λ‹¨ν–ˆμŠ΅λ‹ˆλ‹€. @cucumber/cucumber μ‚¬μš©ν•΄ λ³΄μ‹­μ‹œμ˜€. 이것은 μ‹œν—˜νŒμž…λ‹ˆλ‹€. μ—…λ°μ΄νŠΈ 방법은 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ κ°€μ΄λ“œ λ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.

였 κ·Έλ ‡κ΅°μš” ν•œλ²ˆ ν•΄λ³Όκ»˜μš” κ°μ‚¬ν•©λ‹ˆλ‹€! ν‘Έμ‹œλœ νƒœκ·Έκ°€ μ—†μ–΄μ„œ λͺ°λžμ–΄μš” πŸ™ƒ

κ°μ‚¬ν•©λ‹ˆλ‹€ @sroze - νƒœκ·Έλ₯Ό ν‘Έμ‹œν•˜λŠ” 것을 μžŠμ—ˆμŠ΅λ‹ˆλ‹€. 이제 λλ‚¬μŠ΅λ‹ˆλ‹€.

더 λ§Žμ€ μ‚¬λžŒλ“€μ΄ μƒˆ 버전을 λ°œκ²¬ν•˜λŠ” 데 도움이 λ˜λŠ” 이와 같은 νŒ¨ν‚€μ§€μ— λŒ€ν•œ 생각이 μžˆμŠ΅λ‹ˆκΉŒ?

7.0.0이 μΆœμ‹œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ 지침 은 λ³€κ²½ 둜그 λ₯Ό μ°Έμ‘°ν•˜μ„Έμš”. 감사 ν•΄μš”!

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