์๋ ํ์ธ์ @davidjgoss ์ @charlierudolph์ ๋๋ค!
7.2.0
(#1589)์ ๋์
๋ ESM์ ๋ํ ์ง์์ ๋ ์ด์ ํ์ ๋ชจ๋ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ํ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ง์ ์ธ๋ถ ๋ฆฌํฌํฐ๋ฅผ ์ค๋จ์ํค๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ด๋ ํ์ ๋ชจ๋ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์๋ํ๋ ํ๋ก์ ํธ์์ ์ค๋ฅ๋ก ๋ํ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์ ์ค ํ๋๋ฅผ ํธ์ถํฉ๋๋ค.
const TestCaseHookDefinition = require('@cucumber/cucumber/lib/models/test_case_hook_definition')
๋๋:
import TestCaseHookDefinition from '@cucumber/cucumber/lib/models/test_case_hook_definition';
๊ฒฐ๊ณผ:
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './lib/models/test_case_hook_definition'
is not defined by "exports" in /path/to/project/node_modules/@cucumber/cucumber/package.json
๋ด๊ฐ ์๊ณ ์๋ ์ํฅ์ ๋ฐ๋ ํ๋ก์ ํธ(๋ ์์ ์ ์์):
@serenity-js/cucumber
๋ชจ๋์ ๋ค์ ํ์ ๋ชจ๋ ๊ฐ์ ธ์ค๊ธฐ์ ์์กดํฉ๋๋ค.@cucumber/cucumber/package.js
(๋ฒ์ ์ฝ๊ธฐ)@cucumber/cucumber/lib/models/test_case_hook_definition
- TestCaseHookDefinition
์ธ์คํด์คํcucumber-pretty-formatter
- ๋ก๋์ ์์กดํ๋ jbpros/cucumber-pretty-formatter#2๋ฅผ ์ฐธ์กฐํ์ญ์์ค.@cucumber/cucumber/lib/formatter
- IFormatterOptions
@cucumber/cucumber/lib/formatter/helpers
- formatLocation
@cucumber/cucumber/lib/formatter/helpers/gherkin_document_parser
- getGherkinExampleRuleMap
, getGherkinScenarioMap
, getGherkinStepMap
@cucumber/cucumber/lib/formatter/helpers/pickle_parser
- getPickleStepMap
@wdio/cucumber-framework
, ๋ก๋:@cucumber/cucumber/lib/support_code_library_builder/types
- ITestCaseHookParameter
@cucumber/cucumber/lib/formatter/helpers/event_data_collector
- EventDataCollector
@cucumber/cucumber/lib/support_code_library_builder/types
- ITestCaseHookParameter
@cucumber/cucumber/lib/runtime
- IRuntimeOptions
Cucumber.js๊ฐ ์์ ํด๋์ค, ์ ํ ๋ฐ ๊ธฐ๋ฅ์ ๋ด๋ณด๋ผ ์ ์์ต๋๊น? ์๋ฅผ ๋ค์ด reporters
๋ค์์คํ์ด์ค(๋๋ ์ผ๋ฐ ์ฌ์ฉ์๋ฅผ ๋ฐฉํดํ์ง ์๋๋ก ์ด์ ์ ์ฌํ ๊ฒ):
import { reporters } from '@cucumber/cucumber';
reporters.TestCaseHookDefinition
๋๋ ์์ ์ ์์ ๋๋ฌด ๋ง์ ์์ ์ด ํ์ํ ๊ฒฝ์ฐ ํด๋น ๋ณ๊ฒฝ ์ฌํญ์ ๋๋๋ฆด ์ ์์ต๋๊น?
๊ฐ์ฌ,
1์
@jan-molak
7.2.0(#1589)์ ๋์ ๋ ESM์ ๋ํ ์ง์์ ๋ ์ด์ ํ์ ๋ชจ๋ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ํ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ง์ ์ธ๋ถ ๋ฆฌํฌํฐ๋ฅผ ์ค๋จ์ํค๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ฐ๋จํ ์ค๋ช
ํ์๋ฉด --esm
์ฌ์ฉํ ๋๋ง ๋ฐ์ํฉ๋๋ค. ๋ง์ฃ ?
๋๋ ์ค๋์๋ pretty์ ๋ฌธ์ ๋ฅผ ์์์ฐจ๋ ธ๊ณ , ์ฐ๋ฆฌ๊ฐ ์์ถํ๋ ๊ฒ์ ํ์ฅํ๋ ๊ฒ์ด ์ฃผ์ ์ง์ ์ ์ ๋ฏธ์น๋ ์ํฅ์ ์ดํด๋ณผ ๊ฒ์ ๋๋ค. ๋๋ถ๋ถ์ ํฉ๋ฆฌ์ ์ผ๋ก ๋ณด์ด์ง๋ง ๋์ค์ ์คํ ์ทจ์ํ๋ฉด ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ ์๋ก์ด ํญ๋ชฉ์ API ๊ณ์ฝ์ ํจ๊ณผ์ ์ผ๋ก ์ถ๊ฐํ๊ณ ์์ผ๋ฏ๋ก ์ฃผ์ํด์ผ ํฉ๋๋ค.
์๋ ํ์ธ์ @davidjgos๋!
๋นจ๋ฆฌ ๋ช ํํ ํ์๋ฉด --esm์ ์ฌ์ฉํ ๋๋ง ๋ฐ์ํฉ๋๋ค. ๋ง์ฃ ?
์๋์, ์ธ๋ถ ํ๋ก์ ํธ๊ฐ @cucumber/cucumber
์์ ํ์ ๋ชจ๋์ ๊ฐ์ ธ์ค๋ ค๊ณ ํ ๋๋ง๋ค ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ฌ๊ธฐ์์ ๋ฌธ์ ๋ฅผ ์ฌํํ์ต๋๋ค - https://github.com/jan-molak/cucumber-js-1646
git clone https://github.com/jan-molak/cucumber-js-1646.git
cd cucumber-js-1646
npm install
npm start
์ค๋ฅ ์ฐธ์กฐ:
> [email protected] start /path/to/jan-molak/cucumber-js-1646
> node index.js
internal/modules/cjs/loader.js:438
throw e;
^
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './lib/models/test_case_hook_definition' is not defined by "exports" in /path/to/jan-molak/cucumber-js-1646/node_modules/@cucumber/cucumber/package.json
at throwExportsNotFound (internal/modules/esm/resolve.js:290:9)
at packageExportsResolve (internal/modules/esm/resolve.js:513:3)
at resolveExports (internal/modules/cjs/loader.js:432:36)
at Function.Module._findPath (internal/modules/cjs/loader.js:472:31)
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:867:27)
at Function.Module._load (internal/modules/cjs/loader.js:725:27)
at Module.require (internal/modules/cjs/loader.js:952:19)
at require (internal/modules/cjs/helpers.js:88:18)
at Object.<anonymous> (/path/to/jan-molak/cucumber-js-1646/index.js:1:32)
์ข์, 7.2.1์ ๋๋๋ฆฌ๊ธฐ์ ํจ๊ป ๋์๋ค. ๋๋ ESM์ ๋ํด ๋ค์ ํ๊ณ ๋ค์ด ์ด ๋ฌธ์ ๋ฅผ ํผํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๋์ง ์์๋ณด๊ฒ ๋ค. @jan-molak ํค์์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค
@davidjgoss๋, ๋น ๋ฅด๊ฒ ๋ต๋ณํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ข์, 7.2.1์ ๋๋๋ฆฌ๊ธฐ์ ํจ๊ป ๋์๋ค. ๋๋ ESM์ ๋ํด ๋ค์ ํ๊ณ ๋ค์ด ์ด ๋ฌธ์ ๋ฅผ ํผํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๋์ง ์์๋ณด๊ฒ ๋ค. @jan-molak ํค์์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค