๋๋ typescript๋ก lib๋ฅผ ๋ง๋ค์๊ณ ๋ด ํ ์คํธ๋ typescript๋ก ์์ฑ๋์์ต๋๋ค. ๋๋ ์ ๋ง๋ก ์ค์ด.js๋ฅผ ์๋ํ๊ณ typescript๋ก ๋จ๊ณ ์ ์ ํ์ผ์ ๋ง๋ค๊ณ ์ถ์ต๋๋ค. ๊ทธ๋์ ๋น์ ์ coffeescript์ js๋ฅผ ์ง์ํฉ๋๋ค. .ts๋ ์ข์ ๊ฒ์ ๋๋ค.
๋ฌธ์ ์ธ์ฌ
ํฌ๋ฆฌ์ค
@Chris2011์ pull request๋ฅผ ๋ณด๋ด์ง
์ ๋ ์ด ํ๋ก์ ํธ์ ๊ณ ๊ฐ์ผ ๋ฟ์ ๋๋ค. ์ ๊ฐ ์ฌ์ฉํ๋ ๊ฐ ํญ๋ชฉ์ ๋ํด ๊ฐ๊ฐ์ ํ ๋ฆฌํ์คํธ๋ฅผ ์ํํ ๋ ์ ๊ฐ ์ง์ ๋ง๋ค ์ ์๋ ๊ฒ๋ณด๋ค ๋๋ฝ๋ ๋ถ๋ถ์ด ์์ ๊ฒ์ ๋๋ค. ๊ธฐ๋ฅ ์์ฒญ์ผ ๋ฟ์ ๋๋ค. ๋๊ตฐ๊ฐ๊ฐ ์๊ฐ์ด ์๊ณ ๊ทธ๊ฒ์ ํ๊ณ ์ถ๋ค๋ฉด ์ ์ ๋ ๊น์? ์ ๋ ์๊ฐ์ด ์๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ ์์ ๊ณผ ๋ค๋ฅธ ํ๋ก์ ํธ๊ฐ ๋์ผํ๊ณ ์ ๊ฐ ์ฌ์ฉํ๋ ๊ฐ ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๊ณ ์ถ์ง ์์ต๋๋ค. ๊ฐํนํ ๋ง์ ํ ์๋ ์์ง๋ง ์ ์๊ฒ๋ ๋ด๊ฐ ์ฌ์ฉํ๋ ๊ฐ ํ๋ก์ ํธ์ ๊ธฐ์ฌ์๊ฐ ๋ ์ ์๋ค๋ ๊ฒ์ด ๋ถ๋ช ํฉ๋๋ค. ์์ค ๋ฑ์ ์ดํดํด์ผ ํฉ๋๋ค.
@Chris2011์ ์ดํดํฉ๋๋ค. ์ธ์ ๊ฐ ๋๊ตฐ๊ฐ๊ฐ ๋น์ ์ ๋๊ณ ์ถ๊ฑฐ๋ ๋จ์ง ์ฌ๋ฏธ๋ก ์ด๊ฒ์ ๊ตฌํํ๋ ๋ฐ ์๊ฐ์ ํ ์ ํ๊ธฐ๋ก ๊ฒฐ์ ํ ๊ฒ์ ๋๋ค.
๋ณด๋ค ํ์ค์ ์ธ ์๋๋ฆฌ์ค๋ ๋๊ตฐ๊ฐ๊ฐ ๊ทธ๊ฒ์ ๊ตฌํํ๊ณ PR์ ๋ณด๋ด๋ ๋ฐ ๊ธฐ๊บผ์ด ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ ํฌ์ํ ๋งํผ ์ถฉ๋ถํ ํ์ํ ๋๊น์ง ์ด ๊ธฐ๋ฅ ์์ฒญ์ด ์ด๋ ค ์๋ ๊ฒ์ ๋๋ค.
์๋ง๋. ๊ทํ์ ์๊ฒฌ์ ๋ํด Thx. ์ ์๊ฐ์๋ TS๊ฐ 1, 2๋ ์ ๋ ๋ ๋์คํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ด ๊ธฐ๋ฅ์ ์๊ตฌํ๋ ๊ฒ์ ๋จ์ง ๋ ผ๋ฆฌ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ปคํผ์คํฌ๋ฆฝํธ๋ฅผ ๊ตฌํํ๊ธฐ๋ก ๊ฒฐ์ ํ ๋น์ ์ด๋ ๋๊ตฐ๊ฐ๊ฐ ํ์ดํ์คํฌ๋ฆฝํธ๋ ๊ตฌํํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
์ ๋ง ๊ณ ๋ง์. ์ฐ๋ฆฌ๋ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๋์ง ๋ณผ ๊ฒ์ ๋๋ค ...
์ผ๋ฐ์ ์ผ๋ก ํฌ๋งทํฐ์ ๋ง์ฐฌ๊ฐ์ง๋ก ํต์ฌ(ํ์ฌ CoffeeScript ๋ฐ PogoScript ํฌํจ)์ ์ผ๋ถ๊ฐ ์๋ ํ์ฌ ํ๋ฌ๊ทธ์ธ์ผ๋ก ์ธ์ด/๋ฐฉ์ธ์ ์ง์ํ๊ณ ์ถ์ต๋๋ค.
TS +1
+1
์ข์์, ์ ์๋ง ํด์ฃผ์ธ์!!!
:+1:
์ด๋ค ์์ +1 ๋๋ :+1:๋ ์ด๋ฌํ ์ผ์ด ๋ฐ์ํ์ง ์์ต๋๋ค. ๋๊ตฐ๊ฐ๊ฐ pull ์์ฒญ์ ์ ์ถํด์ผ ํฉ๋๋ค.
:+1: @aslakhellesoy ์๋ฆฌ์
:8ball: @samccone
@jbpros @aslakhellesoy ํ์ฌ ์ธ์ด๋ฅผ ์ง์ํ๊ธฐ ์ํด ์ํํด์ผ ํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ์์ ๋ฐฉ๋ฒ์ ๊ตฌํํ๋ ๊ฒ์ ๋๋ค.
SupportCodePathExpander.SUPPORT_CODE_FILES_IN_DIR_REGEXP = /\.(js|coffee|pogo)$/;
๊ทธ๋ฐ ๋ค์ ๋๊ตฌ๋ ์๋ฅผ ๋ค์ด support/env.js
์ ๋ชจ๋ ํธ๋์คํ์ผ๋ฌ๋ฅผ ๋ฑ๋กํ ์ ์์ต๋๋ค.
์ด ์ ๊ท์์ ์์ ์ ๊ฑฐํด์ผ ํฉ๋๊น?
๋๋ ์ด๊ฒ์ ๋ณด๊ฒ๋์ด ๊ธฐ์ฉ๋๋ค. CoffeeScript ๊ธฐ๋ฅ ํ์ผ์ ์ฐพ์ ์๋ ์์ง๋ง ๋จ๊ณ ์ ์๊ฐ ๊ตฌํ๋ ์์น๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ๋๊ตฐ๊ฐ ์ํํด์ผ ํ ์์ ์ ๋ํ ํฌ์ธํฐ๋ฅผ ์ค ์ ์์ต๋๊น?
@SeanFarrow ์ด๋ฏธ ๋ก์ปฌ์์ ์ํํ์ต๋๋ค. /lib/cucumber//cli/argument_parser/support_code_path_expander.js:12
๋ฅผ ์์ ํ ๋ค์ require ํํฌ๋ฅผ ํตํด ํธ๋์คํ์ผ๋ฌ๋ฅผ ์ถ๊ฐํ๋ฉด ๋ฉ๋๋ค.
ํ๋ณด๋ฅผ ๋ณด๋ด์ค ๊ฑด๊ฐ์?
๋ณด๋ธ ์ฌ๋: Aleh Kashnikau [mailto:[email protected]]
๋ณด๋ธ ๋ ์ง: 2015๋
8์ 16์ผ 19:15
๋ฐ๋ ์ฌ๋: ์ค์ด/์ค์ด-js ์ค์ด [email protected]
์ฐธ์กฐ: ์ ํจ๋ก์ฐ ์. [email protected]
์ ๋ชฉ: Re: [cucumber-js] TypeScript ์ง์ ์ถ๊ฐ(#335)
@SeanFa rowhttps://github.com/SeanFarrow ์ด๋ฏธ ๋ก์ปฌ์์ ์ํํ์ต๋๋ค. /lib/cucumber//cli/argument_parser/support_code_path_expander.js:12๋ฅผ ์์ ํ ๋ค์ ํ์ ํํฌ๋ฅผ ํตํด ํธ๋์คํ์ผ๋ฌ๋ฅผ ์ถ๊ฐํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ Gi tHubhttps://github.com/cucumber/cucumber-js/issues/335#issuecomment -131598410์์ ํ์ธํ์ธ์.
@mkusher ๋ ๋ง์ ๊ฒ์ด ์์ต๋๋ค. ์๋ฃํ๋ ค๋ฉด ๋จ๊ณ ์ ์ ์ค๋ํซ์ ์ถ๊ฐ ์ธ์ด๋ก๋ ์ฌ์ฉํ ์ ์์ด์ผ ํฉ๋๋ค(ํ์ฌ PogoScript์์๋ ์ํ๋์ง ์์). CLI --coffee
ํ๋๊ทธ๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์ด์จ๋ ํ๋ฌ๊ทธ์ธ/ํธ๋์คํ์ผ๋ฌ ์์คํ ์ ํตํด ์ด ์์ ์ ์ํํ๊ณ ํต์ฌ์์ ๋ชจ๋ ๋ฐฉ์ธ(์ปคํผ์คํฌ๋ฆฝํธ ํฌํจ)์ ์ ๊ฑฐํ๊ณ ์ถ์ต๋๋ค.
์ธ์ด๋ณ ์ง์์ด ํ์ํ ์ด์ ๋ฅผ ์ดํดํ์ง ๋ชปํฉ๋๊น? ๋น๋ ํ๋ก์ธ์ค์ ์ผ๋ถ๋ก ๋จ๊ณ ์ ์๋ฅผ JavaScript๋ก ๋ณํํ์ง ์๊ฒ ์ต๋๊น?
์, #398์ด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
@henrify Cucumber ์ "ํ์ํ" ์ ์ผํ ๊ฒ์ ๋ค๋ฅธ ์ธ์ด์ ๋ํ ๋จ๊ณ ์ ์ ์ค๋ํซ ์ง์์
๋๋ค. ํ์ฌ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐ๋๋ผ JS์ ์์ผ๋ฉฐ --coffee
CLI ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ CS์์ ์ถ๋ ฅํ ์ ์์ต๋๋ค.
๋นJS ์ค๋ํซ(CS ํฌํจ)์ ๋ชจ๋ ์ญ์ ํ ์ ์์ต๋๋ค. ์๊ฐ?
readme๊ฐ ์
๋ฐ์ดํธ๋ ์ดํ๋ก @jbpros ๋ "cucumber typescript"
๋ฐ์ท๋ฌธ์ ๋ํ ๊ฒฐ๊ณผ์ ๋์ ๋๊ฒ ํ์๋ฉ๋๋ค.
-๋จ๊ณ ์ ์ ๋ฐ ์ง์ ํ์ผ์ javascript๋ก ๋ณํ๋๋ ๋ค๋ฅธ ์ธ์ด๋ก ์์ฑํ ์ ์์ต๋๋ค.
- ์ด๊ฒ์ CLI ์ต์
--compiler <file_extension>:<module_name>
๋ฉ๋๋ค. CoffeeScript 1.10.0์ ๊ฒฝ์ฐ,
- ์ด๊ฒ์ --compiler coffee:coffee-script/register
๋ฉ๋๋ค.
๋จ๊ณ ์ ์ ๋ฐ ์ง์ ํ์ผ์ javascript๋ก ๋ณํ๋๋ ๋ค๋ฅธ ์ธ์ด๋ก ์์ฑํ ์ ์์ต๋๋ค. ์ด๊ฒ์ CLI ์ต์
--compiler <file_extension>:<module_name>
๋ฉ๋๋ค.
์ปคํผ ์คํฌ๋ฆฝํธ NPM ํจํค์ง๋ฅผ ์ค์นํ๊ณ --compiler coffee:coffee-script/register
Cucumber๋ฅผ ํธ์ถํฉ๋๋ค.
typescript-node NPM ํจํค์ง๋ฅผ ์ค์นํ๊ณ --compiler ts:typescript-node/register
Cucumber๋ฅผ ํธ์ถํฉ๋๋ค.
ํ์์ ๊ฐ์ด ๋ชจ๋ ๋จ๊ณ ์ ์ ๋ฐ ์ง์ ํ์ผ์ Cucumber์์ ์คํํ ํจ์๋ฅผ ๋ด๋ณด๋ด์ผ ํฉ๋๋ค. ์ด๊ฒ์ด TS์์ ์ํ๋๋ ๋ฐฉ๋ฒ์ ๋๋ค.
declare var module: any;
module.exports = function () {
this.Given(/.*/, function () {
// ...
})
}
pogo NPM ํจํค์ง๋ฅผ ์ค์นํ๊ณ --compiler pogo:pogo
Cucumber๋ฅผ ํธ์ถํฉ๋๋ค.
์ ๋ง typescript-node๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๊น? typescript-node ๋์ ๊ณต์์ ์ผ๋ก ์ง์๋๋ tsc๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๊น? ์ฐจ์ด์ ์ ๋ชจ๋ฅด์ง๋ง tsc๋ Microsoft์์ ๊ณต์์ ์ผ๋ก ์ง์ํฉ๋๋ค.
@Chris2011 ts-node
๋ tsc๋ฅผ ํตํด ์ปดํ์ผ์ ์คํํ node.js์ฉ ๋ ์ง์คํฐ ํํฌ์
๋๋ค.
์์์ด.
@JoshuaKGoldberg ์ด๋์ ๋ฐ์ทํ์ต๋๊น? ๋ด ๊ฒ์์ ๊ทธ๊ฒ์ ์ฐพ์ง ๋ชปํ์ต๋๋ค.
ํ์ดํ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ค์ดjs๋ฅผ ์๋ดํ๋ ์ํ:
https://github.com/AbraaoAlves/cucumber-protractor-typescript-boilerplate
์ํ์ ๋ํด @AbraaoAlves ์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
๋ถํํ๋, ๊ทธ๊ฒ์ ์ค์ดjs 1์์๋ง ์๋ํฉ๋๋ค. ๊ฐ๋๊ธฐ-์ค์ด-ํ๋ ์์ํฌ ๋ ์ด์ด๋ ์ค์ด2 rcs์ ํธํ๋์ง ์์ต๋๋ค.
์ค์ด ๋ณด๊ณ ์์ ์คํฌ๋ฆฐ์ท์ ์ฒจ๋ถํ๋ ๋ฐฉ๋ฒ. ์ ๋ ํ์ดํ์คํฌ๋ฆฝํธ ์ธ์ด๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋๊ฐ ์ข ๋์์ฃผ์ธ์.
์์ผ๋ก ์ค์ด+๊ฐ๋๊ธฐ+ํ์ ์คํฌ๋ฆฝํธ ํธํ์ฑ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋์ง ํ์ธํด์ฃผ์ธ์...์ฐ๋ฆฌ๋ ๊ตฌํ์ ์ํด ์กฐํฉ์ ์ฌ์ฉํ ๊ณํ์ด๋ฏ๋ก..
@๋ผ์์ฆํ๋
After
์์ ๋ค์๊ณผ ๊ฐ์ด ํ์ญ์์ค.
driver.takeScreenshot().then(data => {
attach(new Buffer(data, 'base64'), 'image/png');
}).catch(error => {
info(error);
throw error;
});
์ด ์ค๋ ๋๋ ๋ซํ ํ ์ต๊ทผ ํ๋์ด ์์๊ธฐ ๋๋ฌธ์ ์๋์ผ๋ก ์ ๊ฒผ์ต๋๋ค. ๊ด๋ จ ๋ฒ๊ทธ์ ๋ํ ์ ๋ฌธ์ ๋ฅผ ์ฌ์ญ์์ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
readme๊ฐ ์ ๋ฐ์ดํธ๋ ์ดํ๋ก @jbpros ๋
"cucumber typescript"
๋ฐ์ท๋ฌธ์ ๋ํ ๊ฒฐ๊ณผ์ ๋์ ๋๊ฒ ํ์๋ฉ๋๋ค.ํธ๋์คํ์ผ๋ฌ
-๋จ๊ณ ์ ์ ๋ฐ ์ง์ ํ์ผ์ javascript๋ก ๋ณํ๋๋ ๋ค๋ฅธ ์ธ์ด๋ก ์์ฑํ ์ ์์ต๋๋ค.
- ์ด๊ฒ์ CLI ์ต์
--compiler <file_extension>:<module_name>
๋ฉ๋๋ค. CoffeeScript 1.10.0์ ๊ฒฝ์ฐ,- ์ด๊ฒ์
--compiler coffee:coffee-script/register
๋ฉ๋๋ค.๋จ๊ณ ์ ์ ๋ฐ ์ง์ ํ์ผ์ javascript๋ก ๋ณํ๋๋ ๋ค๋ฅธ ์ธ์ด๋ก ์์ฑํ ์ ์์ต๋๋ค. ์ด๊ฒ์ CLI ์ต์
--compiler <file_extension>:<module_name>
๋ฉ๋๋ค.์ปคํผ์คํฌ๋ฆฝํธ
์ปคํผ ์คํฌ๋ฆฝํธ NPM ํจํค์ง๋ฅผ ์ค์นํ๊ณ
--compiler coffee:coffee-script/register
Cucumber๋ฅผ ํธ์ถํฉ๋๋ค.ํ์ ์คํฌ๋ฆฝํธ
typescript-node NPM ํจํค์ง๋ฅผ ์ค์นํ๊ณ
--compiler ts:typescript-node/register
Cucumber๋ฅผ ํธ์ถํฉ๋๋ค.ํ์์ ๊ฐ์ด ๋ชจ๋ ๋จ๊ณ ์ ์ ๋ฐ ์ง์ ํ์ผ์ Cucumber์์ ์คํํ ํจ์๋ฅผ ๋ด๋ณด๋ด์ผ ํฉ๋๋ค. ์ด๊ฒ์ด TS์์ ์ํ๋๋ ๋ฐฉ๋ฒ์ ๋๋ค.
ํฌ๊ณ ์คํฌ๋ฆฝํธ
pogo NPM ํจํค์ง๋ฅผ ์ค์นํ๊ณ
--compiler pogo:pogo
Cucumber๋ฅผ ํธ์ถํฉ๋๋ค.