ํ ์คํธ์์ ๋ค๋ฃจ์ง ์๋ ์ฝ๋ ๋ถ๋ถ์ด๋ ์ค์ ๋ก๋ ์ฃฝ์ ์ฝ๋๋ฅผ ์๋ณํ๋ ค๋ฉด ๋ฒ์ ๋ณด๊ณ ์๋ฅผ ์์ฑํ๋ ๊ฒ์ด ๋์์ด ๋ ๊ฒ์ ๋๋ค. ๋ ๋ค๋ฅธ ์ฌ์ฉ ์ฌ๋ก๋ ํน์ PDF ํ์ผ์ ๋ฌธ์ ๋ฅผ ๋ถ์ ํ ๋ PDF.js์ ์ด๋ค ๋ถ๋ถ์ด ๊ด๋ จ์ด ์๋์ง ์ ์ํ๊ฒ ์๋ณํ๋ ๊ฒ์ ๋๋ค (ํนํ ์๋ก์ด ๊ธฐ์ฌ์์๊ฒ ์ ์ฉ ํ ์ ์์).
์ฌ๋ฌ ๋๊ตฌ๊ฐ ์์ง๋ง https://github.com/gotwarlost/istanbul์ ๋ํ ์ข์ ๊ฒฝํ์ํ์ต๋๋ค
Travis์ ํตํฉ ํ ์ ์์ผ๋ฉฐ ๊ฒฐ๊ณผ๋ ์์
๋ณต๊ณผ ๊ฐ์ ์ธ๋ถ ์๋น์ค์ ๊ฒ์ ๋ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด https://coveralls.io/github/Rob--W/cors-anywhere?branch=master(https : //github.com/Rob--W/cors-anywhere/commit/f9af03e76249b4dd38722b459293773ccddb6c7d).
PDF.js์๋ ๋ด๊ฐ ์๋ ๋ค๋ฅธ ์คํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค (์์ธํ ๋ด์ฉ์ gulpfile.js
์ฐธ์กฐ).
generic
๋น๋ ํ๊ฒ์ ์ํด ์์ฑ ๋ ๋ฐ์ด๋๋ฆฌ์ ์์กดํ๋ฉฐ, ์ด๋ babel๋ก ํธ๋์ค ํ์ผ ๋ ์ฝ๋๋ฅผ ์ฌ์ฉํ๊ณ webpack ( gulpfile.js์ ๊ตฌ์ฑ๋จ )๊ณผ ํจ๊ป ๋ฒ๋ค๋ก ์ ๊ณต๋ฉ๋๋ค.generic
๋น๋ ๋์์ ๋ฐ๋ผ ๋ค๋ฆ).์ด์์ ์ผ๋ก๋ ์๋ ์์ค์ ๋ํ ์ปค๋ฒ๋ฆฌ์ง ํต๊ณ๋ฅผ ์ป์ ์ ์์ง๋ง ๋จผ์ ๋ธ๋ผ์ฐ์ /Node.js์์ ์ง์ ์คํ๋๋ ์์ฑ ๋ JS ํ์ผ์ ๋ํ ์ปค๋ฒ๋ฆฌ์ง ํต๊ณ๋ฅผ ๊ฒฐ์ ํ ์๋ ์์ต๋๋ค (๋ ์ฌ์ด ๊ฒฝ์ฐ).
unittestcli-Node.js์์ PDF.js์ ์ผ๋ถ ๋จ์ ํ ์คํธ๋ฅผ ์คํํฉ๋๋ค (์ต์ํ์ ์์ค ๋ณ๊ฒฝ, babel์ ์ฌ์ฉํ ํธ๋์ค ํ์ผ ๋ง ์ฌ์ฉ).
browsertest-๋ธ๋ผ์ฐ์ ์์ ํ ์คํธ๋ฅผ ์คํํฉ๋๋ค (Chrome ๋ฐ Firefox ํ ์คํธ). ์ด๋generic
๋น๋ ๋์์ ์ํด ์์ฑ ๋ ๋ฐ์ด๋๋ฆฌ์ ์์กดํฉ๋๋ค.์ด ๋ฐ์ด๋๋ฆฌ๋ babel๋ก ํธ๋์ค ํ์ผ ๋ ๋ค์ ์นํฉ๊ณผ ํจ๊ป ๋ฒ๋ค๋ก ์ ๊ณต๋๋ ์ฝ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
browsertest
๊ฐ ์ฐธ์กฐ ํ
์คํธ๋ฅผ ์คํํ๋ ๋์ ๋ธ๋ผ์ฐ์ ์์ ์ ์ฒด ๋จ์ ํ
์คํธ ์งํฉ์ ์คํํ๋ unittest
๋ช
๋ น๋ ์์ต๋๋ค (ํ์ ์งํฉ ๋ง ์คํํ๋ unittestcli
๊ณผ ๋ฐ๋) ๊ธฐ์กด ๋จ์ ํ
์คํธ์).
๋ํ PDFJS_NEXT
๋น๋ ํ๋๊ทธ๊ฐ ์ค์ ๋ ๊ฒฝ์ฐ "Babel๋ก ๋ณํ"๋จ๊ณ๋ฅผ ๊ฑด๋ ๋ธ ์ ์์ต๋๋ค ( gulpfile.js
๋ค๋ฅธ ๋น๋ ํ๋๊ทธ์ฒ๋ผ ๋๋ ๋ช
๋ น ์ค ์ธ์๋ก). ์ฝ๋๋ ์ฌ์ ํ Webpack์ ๋ฒ๋ค๋ก ์ ๊ณต๋์ง๋ง ์ต์ํ ํธ๋์ค ํ์ผ ๋จ๊ณ๋ฅผ ํผํ ์ ์์ต๋๋ค.
@ Rob--WI๊ฐ์ด ์์ ์ํ๊ณ ์ถ์ต๋๋ค.
๋์ ๊ฒ์ด ์ผ! ์ง๋ฌธ์ด ์์ผ์๋ฉด ์๋ ค์ฃผ์ญ์์ค (๋ฐ๋์งํ๊ฒ๋ IRC์์).
@timvandermeij Karma ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํฉ๋๋ค. ์ด์คํ๋ถ ์ฝ๋ ์ปค๋ฒ๋ฆฌ์ง ์์ง๊ณผ ํจ๊ป ์๋ํฉ๋๋ค. ํ ์คํธ ์คํ์ ๋ํ ํต๊ณ๋ฅผ ํ์ธํ ์ ์์ผ๋ฉฐ HTML ๋ณด๊ณ ์๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์์ํ๊ธฐ์ ์ข์ ๋ฐฉ๋ฒ์ ๋๊น?
Karma๋ฅผ ์ฌ์ฉํ์ฌ https://drive.google.com/file/d/0ByddvU1PKkWaWEZTWHFYT0Y0aTg/view?usp=sharing ํ
์คํธ ๋ณด๊ณ ์๋ฅผ ๋ฐ์์ต๋๋ค.
๊ทธ๋ฌ๋ ํ
์คํธ ๋ฒ์ ํต๊ณ๋ https://drive.google.com/file/d/0ByddvU1PKkWaS1ZiT1dobU1DQUk/view?usp=sharing ์ ํ์๋์ง ์์ต๋๋ค.
@ Divya063 ์๋ฅผ ๋ค์ด ํ์ฌ ์ฝ๋๋ฅผ Github์ pdf.js ํฌํฌ์์๋ ๋ธ๋์น๋ก ํธ์ํ์ฌ ์ฝ๋๋ฅผ ๊ณต์ ํ ์ ์์ต๋๊น? ํ์ํ ๋ webpack์ด๋ babel์ด ์คํ๋๊ณ ์๋์ง ๊ถ๊ธํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ค ๋ฒ์ ์ Node.js๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๊น?
์๋ต ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. Node ๋ฒ์ ์ 6.11.1์ ๋๋ค. ์ฌ๊ธฐ https://github.com/Divya063/pdf.js/tree/dev ์ง์ ์ ๋ํ ๋งํฌ๊ฐ
์ค๋ฅ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Firefox 43.0.0
SyntaxError : import ์ ์ธ์ ์ต์์ ์์ค์์๋ง ๋ํ๋ ์ ์์ต๋๋ค.
ํฌ๋กฌ 60.0.3112
ํฌ์ฐฉ๋์ง ์์ ๊ตฌ๋ฌธ ์ค๋ฅ : ์๊ธฐ์น ์์ ํ ํฐ ๊ฐ์ ธ ์ค๊ธฐ
์ด๋ ์ฝ๋๊ฐ ์ฌ์ฉ ์ ์ ํธ๋์ค ํ์ผ๋์ง ์์ ์์ ๋ํ๋ ๋๋ค. ํ์ฌ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ง ์์ ES ๋ชจ๋์ ๋ํ ์ง์์ด ๋ด์ฅ๋์ด ์์ผ๋ฏ๋ก ( ์ถ๊ฐ ์ ๋ณด ) ๋จผ์ ์ฝ๋๋ฅผ ํธ๋์ค ํ์ผํด์ผํฉ๋๋ค.
PDF.js์ ๋น๋ ์์คํ ์์ ํธ๋์ค ํ์ผ์ด ๊ตฌ์ฑ๋๋ ์์น๋ฅผ ์ง์ ํ๊ธฐ ์ํด ์ด๊ธฐ ๊ฒ์๋ฌผ์ ํธ์งํ์ต๋๋ค. ์๋ง๋ ๊ธฐ์กด ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ์ฌ ์ด์คํ๋ถ๊ณผ ๋ฐ๋ฒจ์ ํตํฉ ํ ์ ์์ต๋๋ค. ๋น ๋ฅธ ๊ฒ์์ https://github.com/istanbuljs/babel-plugin-istanbul ์ ํ์ํ์ง๋ง ๋ค๋ฅธ ์ต์ ๋์์ ์ ์์ต๋๋ค.
(๊ทธ๋ฆฌ๊ณ ํ์ด์ด ํญ์ค์ ํ์ฌ ์์ ๋ฒ์ ์ 55์ ๋๋ค. ๋น์ ์ ์ค๋๋ ํ์ด์ด ํญ์ค 43์ผ๋ก ํ ์คํธํ๊ณ ์์๋๋ฐ, ์ด๋ ์ง์๋์ง ์์ต๋๋ค. ๋ค์ ํ ์คํธํ๊ธฐ ์ ์ ์ต์ ๋ฒ์ ์ ํ์ด์ด ํญ์ค๋ก ์ ๊ทธ๋ ์ด๋ํ๋ ๊ฒ์ด ์ข์ต๋๋ค)
@ Rob--W ์ค๋ฅ๋ฅผ ์๋ ค ์ฃผ์ ์ ๊ฐ์ฌ ๋๋ฆฌ๋ฉฐ ๊ณง ๊ฒฐ๊ณผ๋ฅผ ์ ๋ฐ์ดํธํ๊ฒ ์ต๋๋ค.
@ Rob--WI๋ karma-browserify
์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ํธ๋์ค ํ์ผํ๊ณ ํ์ด์ด ํญ์ค ๋ฒ์ ์ ์
๊ทธ๋ ์ด๋ํ์ง๋ง ์ฌ์ ํ ๋ง์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ ์์ต๋๋ค. / dev
์ค๋ฅ ๋ฉ์์ง๋ฅผ ๊ณต์ ํ ์ ์์ต๋๊น?
๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฅํ๋ฉด browserify ๋์ webpack์ ์ฌ์ฉํ์ญ์์ค. webpack์ ์ด๋ฏธ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด๋ ๊ฒํ๋ฉด ๋ธ๋ผ์ฐ์ ์์ ์ค์ ๋ก ์ฌ์ฉ๋๋ ์ฝ๋๋ฅผ ๊ณ์ธก ํ ์ ์์ต๋๋ค.
.idea ๋ฐ ๊ธฐํ ์ฌ์ฉ์ ๋ณ ํ๋ก์ ํธ / IDE ํ์ผ๋ ํ์ธํ๊ณ ์์ต๋๋ค. ๊ธฐ์กด ํ๋ก์ ํธ์ ๊ธฐ์ฌํ ๋ ๊ด๋ จ์๋ ํ์ผ์ ํ๋ก์ ํธ์ ์ถ๊ฐํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด๋ ์ ์ฅ์๋ฅผ ๋ณต์กํ๊ฒ ๋ง๋ค๊ณ ๋ณํฉ ์ถฉ๋์ ์ ๋ฐํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ต์ข ํ ์์ฒญ์์ ์ด๋ฌํ ํ์ผ์ ํฌํจ๋์ง ์์์ผํฉ๋๋ค.
์ด ๋ฌธ์ ๊ฐ ์ฌ์ ํ ๋ฐ์ํฉ๋๊น? ๊ทธ๋ ๋ค๋ฉด ์์ ํ๊ณ ์ถ์ต๋๋ค.
์, ์์ ๋กญ๊ฒ ์์ ํ์ญ์์ค.
์๋
ํ์ธ์.
๋๋์ด ์ผ์ํ๊ณ ์์๋ค. ๋๋ ์ด์คํ๋ถ์ ์ฌ์ฉํ์ฌ ํ
์คํธ๋ฅผ ๋ค๋ฃจ๊ณ ์์
๋ณต์ ๋ณด๊ณ ์๋ฅผ ํ์ํ์ต๋๋ค. ํ์ํ ๊ณณ์ ํ์ํ ์ฌํญ์ ๋ณ๊ฒฝํ์ต๋๋ค. ํ์ง๋ง ์์
๋ณต์ ์คํํ ๋๋ง๋ค
npm run coveralls
๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
npm run coveralls
> [email protected] coveralls /home/shikhar/Desktop/mozillaPdfJs/pdf.js
> npm run cover -- --report lcovonly && cat ./coverage/lcov.info | coveralls
> [email protected] cover /home/shikhar/Desktop/mozillaPdfJs/pdf.js
> istanbul cover test/**/*.js "--report" "lcovonly"
Running test 1/16: test_first_run
Running test 2/16: test_first_run_incognito
Running test 3/16: test_storage_managed_unavailable
Running test 4/16: test_managed_pref
Running test 5/16: test_local_pref
Running test 6/16: test_managed_pref_is_overridden
Running test 7/16: test_run_extension_again
Running test 8/16: test_running_for_a_while
Running test 9/16: test_browser_update
Running test 10/16: test_browser_update_between_pref_toggle
Running test 11/16: test_extension_update
Running test 12/16: test_unofficial_build
Running test 13/16: test_fetch_is_supported
Running test 14/16: test_fetch_not_supported
Running test 15/16: test_fetch_mode_not_supported
Running test 16/16: test_network_offline
All tests completed.
No coverage information was collected, exit without writing coverage information
[error] "2017-12-17T11:00:06.112Z" 'error from lcovParse: ' 'Failed to parse string'
[error] "2017-12-17T11:00:06.116Z" 'input: ' ''
[error] "2017-12-17T11:00:06.116Z" 'error from convertLcovToCoveralls'
/home/shikhar/Desktop/mozillaPdfJs/pdf.js/node_modules/coveralls/bin/coveralls.js:18
throw err;
^
Failed to parse string
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] coveralls: `npm run cover -- --report lcovonly && cat ./coverage/lcov.info | coveralls`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] coveralls script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/shikhar/.npm/_logs/2017-12-17T11_00_06_136Z-debug.log
๋๋ ์ด๊ฒ์ ์ฌ๊ธฐ ์ ์ฌ๊ธฐ์์ ์ฐพ์ ๋ณด์์ง๋ง ์์ฉ์ด ์์๋ค. ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง์ ๋ํ ๋์์ด ์์ต๋๊น?
์ฝ๋๋ฅผ ๋ณด์ง ์๊ณ ๋ ๋งํ๊ธฐ ์ด๋ ต์ต๋๋ค. ์ฌ๊ธฐ์ ๊ธฐ์ฌํ ์ฌ๋๋ค์ด ๋น์ ๊ณผ ํจ๊ป ๋ณผ ์ ์๋๋ก ์ฝ๋๋ฅผ ๋ธ๋์น์ ํธ์ ํ ์ ์์ต๋๊น?
@timvandermeij ์ฌ๊ธฐ ์์ต๋๋ค. gem ํ์ผ์ ๋ฌด์ํ์ญ์์ค. ๋๋ ์ด๋ฏธ ๊ทธ๊ฒ์ ์ ๊ฑฐํ์ต๋๋ค.
๋ชจ๋ ์ฝ๋ฉํธ @timvandermeij
์ฝ๊ฐ์ ์ธํฐ๋ท ๊ฒ์์์์ด ์ค๋ฅ๋ coveralls
์ด lcov
ํ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ ์ค์ง ์์์ ์๋ฏธํ๋ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค. npm run cover -- --report lcovonly && cat ./coverage/lcov.info | coveralls
์ ๊ฐ๋ณ ๋ช
๋ น์ด ์ค์ ๋ก ์์ ํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋์ง ํ์ธํ ์ ์์ต๋๋ค.
์๋
ํ์ธ์.
ํ์ฌ ์ฃผ์ ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
No coverage information was collected, exit without writing coverage information
์ด ๋๋ฌธ์ lcov ํ์ผ์ ํญ์ ๋น ์ํ๋ก ์ ์ง๋๋ฏ๋ก ์ด๋ฐ ์ผ์ด ๋ฐ์ํฉ๋๋ค.
[error] "2017-12-17T11:00:06.112Z" 'error from lcovParse: ' 'Failed to parse string'
[error] "2017-12-17T11:00:06.116Z" 'input: ' ''
[error] "2017-12-17T11:00:06.116Z" 'error from convertLcovToCoveralls'
์ธํฐ๋ท ๊ฒ์์์ ์ด๊ฒ์ ๋งค์ฐ ์ผ๋ฐ์ ์ธ ์ค๋ฅ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ์ค๋ฅ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด์คํ๋ถ์ ์์ต๋๋ค. ๋์ผํ ๋ฒ์ ์ ๋ค๋ฅธ ๋ฒ์ ์ผ๋ก ์ ํ์ ์๋ํ์ง๋ง ์ค๋ฅ๊ฐ ๊ณ์ ๋ฐ์ํ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ ์ฅ์์์ ํ ์คํธ๋ ๋ฆฐํธ ๋ ๋จ์ ํ ์คํธ ๋ฑ์ด ์๋ ๋ชจ์นด๋ก ์ํ๋์์ผ๋ฏ๋ก ๋๋ถ๋ถ์ (๊ฑฐ์) ํด์๋๋ ๋ชจ์นด ์ ์ฉ์ ๋๋ค. ์ด๊ฒ๋ค์ ๋ด๊ฐ ์ฐพ์ ๋ช ๊ฐ์ง ์์ค์์ต๋๋ค.
https://github.com/gotwarlost/istanbul/issues/262
https://github.com/coryhouse/react-slingshot/issues/245
https://github.com/gotwarlost/istanbul/issues/496
๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ์ฌ๋ฌ ์ฌ๋๋ ์ค์ ๋ก ๋์์ด๋์ง ์์์ต๋๋ค.
๋น๋๋ travis ( https://travis-ci.org/shikhar-scs/pdf.js/jobs/318422621 )์์ ์ ๋ฌ๋์ง๋ง ์ปค๋ฒ๋ฆฌ์ง๋ ์์ฑ๋์ง ์์ต๋๋ค.
์ ๊ทธ๋ฐ ์ผ์ด ์ผ์ด๋๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง, Jasmine์ผ๋ก ์ฑ๊ณต์ ์ผ๋ก ์ฑ๊ณตํ ์ฌ๋๋ค๋ ๋ง์ด ๋ฐ๊ฒฌํ๋ฏ๋ก ๊ฐ๋ฅํด์ผํฉ๋๋ค. https://bryce.fisher-fleig.org/blog/setting-up-istanbul-with-jasmine/index.html์ด ํจ๊ณผ๊ฐ ์๋ค๋ฉด ์๋ํด ๋ณผ ์ ์์ต๋๊น? ๋จผ์ ์ ํํ ๋จ๊ณ๋ฅผ ์๋ํ์ฌ ๋ ๋ฆฝ ์คํ ํ์ผ๋ก ์๋ํ๋์ง ํ์ธํ ๋ค์ PDF.js์ ํตํฉ ํด๋ณด์ญ์์ค.
@timvandermeij on it
๋ง์นจ๋ด ์ปค๋ฒ๋ฆฌ์ง ๋ณด๊ณ ์๊ฐ ์์ฑ๋๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ์ ธ ์ค๊ธฐ ๋ฐ ๋ด๋ณด๋ด๊ธฐ ๋ฌธ์ ๋ฌธ์ ๊ฐ ์์ผ๋ฏ๋ก ํธ๋์ค ํ์ผ ํ ๋ค์ ํ
์คํธํด์ผํฉ๋๋ค.
Transformation error for /home/shikhar/Desktop/mozillaPdfJs/pdf.js/web/ui_utils.js ; return original code
'import' and 'export' may appear only with 'sourceType: "module"' (16:0)
์ด ์ค๋ฅ๋ ๋ชจ๋ js ํ์ผ์์ ๋ฐ์ํ๋ฉฐ ๊ณง ์์
ํ๊ณ PR์ ์ ์ถํ ๊ฒ์
๋๋ค.
์๋ ํ์ธ์.
์ฌ๊ธฐ ์์ต๋๋ค : ๋น๋ ํต๊ณผ ๋ฐ ์ปค๋ฒ๋ฆฌ์ง ์์ฒญ .
๊ทธ๋ฌ๋ ๊ฐ์ ธ ์ค๊ธฐ ๋ฐ ๋ด๋ณด๋ด๊ธฐ ๋ฌธ์ด ์กด์ฌํ๋ฏ๋ก ํด๋น ํ์ผ์ ๋๋ฌ ํ ํ์๋ ์์ ํ ํ
์คํธ๋์ง ์์์ผ๋ฏ๋ก 0 % ๋ฒ์ ๋ณด๊ณ ์๋ฅผ ๋ฐ๊ณ ์์ต๋๋ค. ๋ด๊ฐ ์๋ ํ ์ฌ์ค๋ฏผ ํ
์คํธ ์ ์ ์ด๋ฌํ ํ์ผ์ ES6์ ๋ฐ ๋ฒจ๋ฆฌ ํํด์ผํ๋๋ฐ ๋ฌธ์ ๊ฐ ์์์ด ์
์ฆ๋์์ต๋๋ค. jasmine์ ES6 ์ฝ๋๋ฅผ ์ด๋ป๊ฒ ์ ๊ณตํฉ๋๊น?
http://jpsierens.com/use-es6-right-now/์ ์ธ๊ธ ๋๋๋ก gulp ํ์ผ์ ๋ณ๊ฒฝํ ์ ์์ต๋๊น?
์ค์ ๋ก ์๋ฃจ์
์ ๊ฐ๊น์์ง๊ณ ์์ต๋๋ค. ์ปค๋ฒ๋ฆฌ์ง ๋ณด๊ณ ์์์ ์ด๋ฏธ ES6๋ก ํธ๋์ค ํ์ผ ๋ lib
ํ์ผ์ ๋ํ ์ปค๋ฒ๋ฆฌ์ง๋ฅผ ์คํํ๋ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค (https://github.com/mozilla/pdf.js/blob/6ac9e1c5ed0d5f067872b8482724c171c79566b2/gulpfile ์ฐธ์กฐ). js # L965 ๋ฐ https://github.com/mozilla/pdf.js/blob/6ac9e1c5ed0d5f067872b8482724c171c79566b2/gulpfile.js#L985). ์๋๋ฉด ๋จ์ ํ
์คํธ ์์ฒด๊ฐ ํธ๋์ค ํ์ผ๋์ง ์๋ ๋ฌธ์ ์
๋๊น? ์ ํํ ์ด๋ป๊ฒ ์๋ํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง, ๊ทธ๋ ๋ค๋ฉด ๋จ์ ํ
์คํธ๋ฅผ ์ํด Gulpfile์ ์ฝ๊ฐ ๋ณ๊ฒฝํด์ผ ํ ์๋ ์์ต๋๋ค.
์๋ ํ์ธ์.
์๋๋ฉด ๋จ์ ํ ์คํธ ์์ฒด๊ฐ ํธ๋์ค ํ์ผ๋์ง ์๋ ๋ฌธ์ ์ ๋๊น? ์ ํํ ์ด๋ป๊ฒ ์๋ํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง, ๊ทธ๋ ๋ค๋ฉด ๋จ์ ํ ์คํธ๋ฅผ ์ํด Gulpfile์ ์ฝ๊ฐ ๋ณ๊ฒฝํด์ผ ํ ์๋ ์์ต๋๋ค.
๋ฌธ์ ๋ ์๋ชป๋ ํด๋์์ ํ
์คํธ๋ฅผ ์คํํ๊ณ ์๋ค๋ ๊ฒ์
๋๋ค. build>lib
ํด๋์๋ ์ด๋ฏธ ES6 ํ์์ ์ ์ฒด ํ๋ก์ ํธ๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ ์ด์ ์ ์ฒด ๋ด์ฉ, ์ฆ ์ฌ์ค๋ฏผ๊ณผ ์์
๋ณต์ ๊ฒฝ๋ก๋ฅผ ์์ ํ์ต๋๋ค.
๋ ๋ค๋ฅธ ๋ฌธ์ ๋ --report lcovonly
๋ฌธ์ด์์ต๋๋ค. ์ด ๋ถ๋ถ์ ์์
๋ณต ๋ผ์ธ์์ ์ ๊ฑฐํ์ ๋ ๋ง์ ์ฒ๋ผ (์ ๋ง ์ด์ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค) ๋ณด๊ณ ์๊ฐ ์์ฑ๋๊ธฐ ์์ํ์ต๋๋ค.
npm์ ๊ฐ๋ณ ๋ช ๋ น์ด ์ปค๋ฒ๋ฅผ ์คํํ๋์ง ํ์ธํ ์ ์์ต๋๋ค. --report lcovonly && cat ./coverage/lcov.info | ์์ ๋ณต์ ์ค์ ๋ก ์์ ํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค.
์ง์ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก ๋ณด๊ณ ์๋ฅผ ์์ฑ ํ ์ ์์ต๋๋ค : tada : ์ฝ๊ฐ ์ฌํ๊ฒ ๋ณด์ด์ง๋ง ์ ํํ ํ์ผ์ ์ฝ์ผ๋ฉด ๊ทธ ์ด์ ๋ฅผ ์ ์ ์์ต๋๋ค.
๋๋ ๋ถ๋ช ํ ์์ฑ ๋ ๋ณด๊ณ ์๋ฅผ ์ง์ ์ ๋ก๋ํ์ง๋ ์์์ง๋ง http://pdfjscoveragereport.bitballoon.com ๋งํฌ์์ ํธ์คํ ํ์ต๋๋ค. ์ด ๋งํฌ๋ฅผ ๋ฐฉ๋ฌธํ๋ฉด ์์๋๋ ์ ํํ ๋ณด๊ณ ์๋ฅผ ์ป์ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด๋ฌํ ๊ฒฐ๊ณผ๋ coveralls.io
์ ๋ฐ์๋์ง ์์ต๋๋ค. : cry : ์ด์ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋ํ ์ฌ๋ฌ ๋ฒ ์ปค๋ฐ ํ ํ์๋ coveralls
์ (๋) ์ต๊ทผ ์ปค๋ฐ์ด ์๋ ์์ฃผ ์ค๋๋ ์ปค๋ฐ์ ๊ธฐ๋ฐ์ผ๋ก ๋ด ํ๋ก์ ํธ๋ฅผ ๋น๋ํ๊ณ ์๋ค๋ ์ฌ์ค์ ์์ ๋์ต๋๋ค
๊ทธ๋ฌ๋ ์ฌ์ ํ npm run coveralls
๋ build/lib/coverage/lcov-report
ํด๋์์๋ ์ด ํ์์ผ๋ก ์ ์ฒด ์ปค๋ฒ๋ฆฌ์ง ๋ณด๊ณ ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ด ๋ชจ๋ ๊ฒ์ด ๋ง์นจ๋ด ๋์์ด๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋ง์ง๋ง ๋ฌธ์ ๋ ์ด๋ฌํ ๋ณด๊ณ ์๋ฅผ ์์ ๋ณต์ ์ด๋ป๊ฒ ๋ ํ์ํ๋ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ ๋ด ์ต์ ๋น๋์ ๋ํ ๋งํฌ์
๋๋ค. https://travis-ci.org/shikhar-scs/pdf.js
์ด๊ฒ์ ๋ด ์ต๊ทผ ์ปค๋ฐ์ ๋ํ ๋งํฌ์
๋๋ค.
coveralls.io์์ ์์ฑ๋์ง ์๋ ๋ณด๊ณ ์๋ฅผ ์ ์ธํ๊ณ ๋ ๋ชจ๋ ๊ฒ์ด ๊ด์ฐฎ์ต๋๋ค. ๋ ๋ง์ ์ฌ๋๋ค์ ๊ด์ฌ์ ๋๊ณ ๋์ ์ด ๋ฌธ์ ๋ฅผ ๋ ์ผ์ฐ ํด๊ฒฐํ ์ ์์ผ๋ฏ๋ก PR์ ์์ฑํด์ผํฉ๋๊น?
์ ํ์ด! ์ปค๋ฒ๋ฆฌ์ง์ ๋ํ ์์ด๋์ด๋ฅผ ๊ฐ๋ ๊ฒ์ด ์ ๋ง ์ข์ผ๋ฉฐ ๋ณด๊ณ ์๋ ๋ง์นจ๋ด ์ฐ๋ฆฌ์๊ฒ ๊ทธ๊ฒ์ ์ ๊ณตํฉ๋๋ค. ์ค์ ๋ก ํจ์ฌ ๋ ๋ง์ ๋จ์ ํ ์คํธ๊ฐ ํ์ํ๋ค๋ ๊ฒ์ ๋ถ๋ช ํ ๋ณด์ฌ ์ฃผ์ง๋ง, ์ต๊ทผ์ ์ถ๊ฐ ํ ๋จ์ ํ ์คํธ์ ๋ํ ๋ชจ๋ ๋ฐฉ๋ฒ์ ์ค์ ๋ก ๋ณด๊ณ ์์ ํฌํจ ๋๋๋ก ํ์๋๋ฏ๋ก ์๋ฒฝํ๊ฒ ๋ณด์ ๋๋ค.
๋น๋ ๋ ํ์ผ ๋์ ์์ค ํ์ผ์ ๋ํด ์ปค๋ฒ๋ฆฌ์ง๋ฅผ ์คํํ ์ ์๋์ง ๊ถ๊ธํฉ๋๋ค. ์ด์ http://pdfjscoveragereport.bitballoon.com/lib/display/metadata.js.html ์์ 28 ํ์ด ์ฐ๋ฆฌ ์ฝ๋๊ฐ ์๋๋ผ ์๋์ผ๋ก ์์ฑ ๋ ์ฝ๋๊ฐ ๋ค๋ฃจ์ง ์๋ ๊ฒ์ ๋ณผ ์ ์๊ธฐ ๋๋ฌธ์ ์ดํดํ๊ธฐ ๋ ์ฝ์ต๋๋ค. ์ด๋ ต๋ค๊ณ ํ๋ช ๋๋ฉด ํ์ฌ ์ ๊ทผ ๋ฐฉ์์ ์ฒซ ๋ฒ์งธ ๋ฒ์ ์ผ๋ก ์ํํ๊ณ ํ์ ๋ฌธ์ ์์์ด๋ฅผ ์ํ ํ ์ ์์ต๋๋ค.
๋ ๋ง์ ์ฌ๋๋ค์ ๊ด์ฌ์ ๋๊ณ ๋์ ์ด ๋ฌธ์ ๋ฅผ ๋ ์ผ์ฐ ํด๊ฒฐํ ์ ์์ผ๋ฏ๋ก PR์ ์์ฑํด์ผํฉ๋๊น?
๋ค, ์ข์ ์๊ฐ์ ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๊ฒํ ํ๋ก์ธ์ค๋ฅผ ์์ํ๊ณ ํด๊ฒฐํด์ผ ํ ๋ฌธ์ ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
์ปค๋ฒ๋ฆฌ์ง์ ๋ํ ์์ด๋์ด๋ฅผ ๊ฐ๋ ๊ฒ์ด ์ ๋ง ์ข์ผ๋ฉฐ ๋ณด๊ณ ์๋ ๋ง์นจ๋ด ์ฐ๋ฆฌ์๊ฒ ๊ทธ๊ฒ์ ์ ๊ณตํฉ๋๋ค. ์ค์ ๋ก ํจ์ฌ ๋ ๋ง์ ๋จ์ ํ ์คํธ๊ฐ ํ์ํ๋ค๋ ๊ฒ์ ๋ถ๋ช ํ ๋ณด์ฌ ์ฃผ์ง๋ง, ์ต๊ทผ์ ์ถ๊ฐ ํ ๋จ์ ํ ์คํธ์ ๋ํ ๋ชจ๋ ๋ฐฉ๋ฒ์ ์ค์ ๋ก ๋ณด๊ณ ์์ ํฌํจ ๋๋๋ก ํ์๋๋ฏ๋ก ์๋ฒฝํ๊ฒ ๋ณด์ ๋๋ค.
์ฐ๋ฆฌ๊ฐ ๋ ๋ง์ ๋จ์ ํ ์คํธ๋ก ํ ์ ์๋ค๋ ๊ฒ์ ํ์คํ ์ฌ์ค์ด์ง๋ง, ์ฌํ๊ฒ๋ ๋จ์ ํ ์คํธ๋ง์ผ๋ก๋ ์ถฉ๋ถํ "์ข์"ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง๋ฅผ ์ป์ ์์๋ ์ฝ๋ ๊ธฐ๋ฐ์ ์๋น ๋ถ๋ถ์ด ์์ต๋๋ค.
https://github.com/mozilla/pdf.js/issues/8632#issue -241690851์์ ์ธ๊ธํ๋ฏ์ด ๋ช ๊ฐ์ง ๋ค๋ฅธ ํ
์คํธ ์ค์ํธ๊ฐ ์์ผ๋ฉฐ gulp browsertest
์์๋ ์ปค๋ฒ๋ฆฌ์ง ๊ฒฐ๊ณผ๋ฅผ๋ฐ๋ ๊ฒ์ด ์๋ชป๋์ง ์๋ ํ ์ค์ ํ
์คํธ ๋ฒ์๊ฐ ์ด๋ป๊ฒ ์๊ฒผ๋์ง ์๊ธฐ ์ํด์๋ ๊ฑฐ์ ํ์์ ์
๋๋ค.
ํธ์ ๋ด์ ๊ฐ๊ธฐ
์ค๋ ์์นจ ์ ๋ cd build && cd lib && istanbul cover --include-all-sources jasmine-node test
๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ชจ๋ ํด๋์์ ์ปค๋ฒ๋ฆฌ์ง ๋ณด๊ณ ์๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ์ฐพ๊ณ , cd <directory name>
์ฌ์ฉํ์ฌ ๋ค๋ฅธ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํ๊ณ jasmine-node <directory names and js files>
์ฌ์ฉํ์ฌ ํ
์คํธ๋ฅผ ๊ด๋ฒ์ํ๊ฒ ์๋ํ์ง๋ง ํ๋ ๊ฒ์
๋๋ค.
ํ
์คํธ ๋ณด๊ณ ์๊ฐ ๊ฐ๋ ์์ฑ๋์ง๋ง (ํญ์ ๊ทธ๋ฐ ๊ฒ์ ์๋) ํน์ ๋๋ ํ ๋ฆฌ์์๋ ํ๋ ๋๋ ๋ ๊ฐ์ ES6 ํ์ js ํ์ผ (๋ฒ์ ๋ณด๊ณ ์์ 2 ~ 3 % ๋ฏธ๋ง ๋ง ๊ฐ์ ธ์ด) ๋๋ฌธ์ ๋ฐ์ํฉ๋๋ค. ์ฌํ๊ฒ๋ import or export statements
๊ฐ ํฌํจ ๋ js ํ์ผ์์ด ํ์์ผ๋ก ์ค๋ฅ๋ฅผ ๋ฐํํฉ๋๋ค.
Transformation error for /home/shikhar/Desktop/mozillaPdfJs/pdf.js/src/core/arithmetic_decoder.js ; return original code
'import' and 'export' may appear only with 'sourceType: "module"' (183:0)
Unable to post-instrument: /home/shikhar/Desktop/mozillaPdfJs/pdf.js/src/core/arithmetic_decoder.js
๊ทธ๋ฆฌ๊ณ ์ด ์ค๋ฅ๋ก ์ธํด ํ์ผ์ ์ ์ฉ ๋ฒ์๋ฅผ ์ ํ ํ์ธํ์ง ์์ผ๋ฏ๋ก 0 % ๋ณด๊ณ ์๋ฅผ ๋ฐํํฉ๋๋ค.
๋น๋ ๋ ํ์ผ ๋์ ์์ค ํ์ผ์ ๋ํด ์ปค๋ฒ๋ฆฌ์ง๋ฅผ ์คํํ ์ ์๋์ง ๊ถ๊ธํฉ๋๋ค.
๋ค์ ๋งํ์ง๋ง, ์์ค ํด๋์๋ import ๋ฐ export ๋ฌธ์ด์๋ ํ์ผ์ด ํฌํจ๋์ด ์์ผ๋ฏ๋ก ๊ด๋ จ ํ์ผ์ ์ ํ ํ์ธํ์ง ์์ ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ ์ ์ฉ ๋ฒ์๊ฐ 0 %์ ๋๋ค.
๋ฐ๋ผ์ ๋น๋ ํด๋ ์์ฒด์์ ํ ์คํธํด์ผํฉ๋๋ค.
gulp browsertest์์ ์ปค๋ฒ๋ฆฌ์ง ๊ฒฐ๊ณผ๋ฅผ ์ป๋ ๊ฒ์ ์ค์ ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง๊ฐ ์ด๋ป๊ฒ ์๊ฒผ๋์ง ์ค์ ๋ก ์๋ ๋ฐ ๊ฑฐ์ ํ์์ ์ ๋๋ค.
@Snuffleupagus ์ด๋ฌํ ํน์ ํ ์คํธ๋ ์ด๋์ ์์ต๋๊น? ์์์ ์ธ๊ธ ํ jasmine-node ๋ฌธ์ ์ฌ์ฉํ์ฌ ์ง์ ํ ์คํธ ํด ๋ณผ ์ ์์ต๋๋ค.
์ด๋ ต๋ค๊ณ ํ๋ช ๋๋ฉด ํ์ฌ ์ ๊ทผ ๋ฐฉ์์ ์ฒซ ๋ฒ์งธ ๋ฒ์ ์ผ๋ก ์ํํ๊ณ ํ์ ๋ฌธ์ ์์์ด๋ฅผ ์ํ ํ ์ ์์ต๋๋ค.
๋ค, ์ฐจ๋ผ๋ฆฌ ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๋ค.
๋ค, ์ข์ ์๊ฐ์ ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๊ฒํ ํ๋ก์ธ์ค๋ฅผ ์์ํ๊ณ ํด๊ฒฐํด์ผ ํ ๋ฌธ์ ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
๋ฌผ๋ก ์ ๋๋ค. ์์ํ๊ฒ ์ต๋๋ค.
# 9308์ PR์ ๋จ์ โโํ ์คํธ์ ๋ํด์๋ง ํ ์คํธ ๋ฒ์์ ์๋ฅผ ๋ณด์ฌ์ค๋๋ค. ์์ฑ ๋ ๋ณด๊ณ ์๋ ๋จ์ ํ ์คํธ ์ธํธ๊ฐ ๋งค์ฐ ์๊ธฐ ๋๋ฌธ์ ๊ฑฐ์ ๊ฐ์น๊ฐ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ https://github.com/mozilla/pdf.js/pull/9308#issuecomment -353588039๋ฅผ ์ฐธ์กฐ
๋ฐ๋ผ์ ๋ธ๋ผ์ฐ์ ํ ์คํธ๋ฅผ ๋ฐ์ผ๋ ค๋ฉด ๋ค์์ด ํ์ํฉ๋๋ค.
์ฃผ์ 1)์ ์ฒ๋ฆฌํ๋ ค๋ฉด gulpfile.js
๋ฅผ ํธ์งํ์ฌ ์ ํ์ ์ผ๋ก ์ฝ๋ ๊ณ์ธก์ ์ถ๊ฐํด์ผํฉ๋๋ค. ์ด๋ ๋ธ๋ผ์ฐ์ ์ window.__coverage__
๊ฐ์ฒด๋ก ๋ด๋ณด๋ด์ง๋๋ค. gulp-istanbul
๊ฐ ์ ์ฉ ํ ์ ์์ต๋๋ค. ๋ฌธ์๊ฐ ๋๋ฌผ๊ฒ ๋ณด์ด์ง๋ง https://stackoverflow.com/questions/38208735/no-window-coverage-object-is-created-by-istanbul-phantomjs ์์ ์์ ๋ฅผ ์ฐพ์์ต๋๋ค
1 ๋จ๊ณ๋ฅผ ๋ง์น๋ฉด ๋ธ๋ผ์ฐ์ ํ
์คํธ์ window.__coverage__
๋ณ์ (๋๋ coverageVariable
๊ตฌ์ฑ ๋งค๊ฐ ๋ณ์์ ์
๋ ฅ ํ ๋ณ์)๊ฐ ์์ต๋๋ค. ์ปค๋ฒ๋ฆฌ์ง ๋ณด๊ณ ์๋ฅผ ๋ฐ์ผ๋ ค๋ฉด :
XMLHttpRequest
๊ฐ ํฌํจ ๋ ์ปค๋ฒ๋ฆฌ์ง ๊ฒฐ๊ณผ๋ฅผ ํ
์คํธ ์๋ฒ์ ๊ฒ์ํฉ๋๋ค.fs
์ฌ์ฉํ์ฌ ํ์ผ์ ๊ธฐ๋กํฉ๋๋ค. @ Rob--W ์์ธํ ๊ฒํ ๋ฅผ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ํ์ ์กฐ์น๋ฅผ ์ทจํ๊ณ ์ต๋ํ ๋นจ๋ฆฌ ๋๋๋ฆด ๊ฒ์ ๋๋ค.
์ด ์๊ฒฌ์ ๊ตฌํ์ ๋ํ ํ์ ์ ๊ณตํ๊ณ https://github.com/mozilla/pdf.js/pull/9308#issuecomment-353710595์ ์ง๋ฌธ์ ๋ตํฉ๋๋ค.
istanbul
๋ ์ฝ๋์ ๊ณ์ธก ๋ง ์ถ๊ฐํฉ๋๋ค. "๊ณ์ธก"์ ์คํ์ด ํด๋น ํ, ๋ช
๋ น๋ฌธ ๋ฑ์ ํต๊ณผ ํ ๋๋ฅผ ๊ฐ์งํ๋ ์ถ๊ฐ JavaScript ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ์๋ฏธํ๊ธฐ ๋๋ฌธ์์ด ์
๋ ฅ์ ์คํ ๊ฐ๋ฅํ ์ฝ๋๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ๊ณ์ธก์ ์ถ๊ฐ ํ ํ ์ฝ๋๊ฐ ํฌ๊ฒ ๋ณ๊ฒฝ๋๋ฉด ๊ฒฐ๊ณผ ๋ฒ์ ๋ณด๊ณ ์๋ ์๋ฏธ๊ฐ ์์ต๋๋ค.
์ด ๊ณ์ธก์ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ๋์ ์ฆ์์์ ์ํ ํ ์ ์์ต๋๋ค (์ : ๋ช
๋ น ์ค์์ istanbul cover
๋ฅผ ์คํํ๋ฉด istanbul
๊ฐ Node.js์ require
ํธ์ถ์ ๊ฐ๋ก ์ฑ๋๋ค). ๋ชจ๋์ด๋ก๋๋๊ธฐ ์ ์ ์ธ์ค ํธ๋ฃจ๋จผ ํ
์ด์
์ผ๋ก ์ฝ๋๋ฅผ ๋ณํ ํ๊ฑฐ๋ ์คํ๊ณผ ๋ณ๋๋ก (์ : ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์์ ์ค๋ช
ํ๋๋๋ก : ์ธ์คํธ๋ฃจ๋จผํธ ๋ ์ฝ๋๊ฐ ๋ช
๋ น ์ค์์ ์์ฑ๋๊ณ ์คํ์ ๋ธ๋ผ์ฐ์ ์์ ์ํ๋ฉ๋๋ค).
# 9308์ ํ์ฌ PR์์ ์คํํ ํ๋ก๊ทธ๋จ์ผ๋ก jasmine
๋ฅผ ์ฌ์ฉํ์ฌ istanbul cover
๋ฅผ ํธ์ถํฉ๋๋ค. ์์ ์ธ๊ธํ๋ฏ์ด์ด ํจ๊ณผ๋ gulp unittestcli
์คํ๊ณผ ์ ์ฌํฉ๋๋ค. ์ฆ, build/lib
๋๋ ํ ๋ฆฌ์์๋ ์ฌ์ ๋น๋ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ํ
์คํธ๊ฐ ์คํ๋ฉ๋๋ค ( test/unit/clitests.json
์์ ๊ตฌ์ฑ๋จ). . build/lib/
์ ์ธํ ๋ชจ๋ ํญ๋ชฉ์ ๋ํด ์ปค๋ฒ๋ฆฌ์ง ๋ณด๊ณ ์๊ฐ 0 ์ปค๋ฒ๋ฆฌ์ง๋ฅผ ํ์ํ๋ ์ด์ ๋ฅผ ์ค๋ช
ํฉ๋๋ค ( require
-d (Node.js) ๋ชจ๋ ๋ง build/lib
๋ฐ build/streams/
์๊ธฐ ๋๋ฌธ) gulp unittestcli
์์
์ ์ ๋ ์ฐธ์กฐ).
์ ์ฉํ ์ปค๋ฒ๋ฆฌ์ง ๋ณด๊ณ ์๋ฅผ ์ป์ผ๋ ค๋ฉด ์ปค๋ฒ๋ฆฌ์ง ๋ณด๊ณ ์๊ฐ ๋ชจ๋ ์์ค์์๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด๊ฒ์ ํ ๋จ๊ณ ์์ ์์ต๋๋ค. ๋น๋ ํ์ดํ ๋ผ์ธ์ istanbul
๋ฅผ ํตํฉํด์ผ ์ฝ๋๊ฐ ES6์์ ํธ๋์ค ํ์ผ ๋ ๋ ๊ณ์ธก์ด ์ถ๊ฐ๋ฉ๋๋ค. ๊ทธ ํ์๋ ๋ชจ๋ ๋ณ ๋ณด๊ณ ์๋ฅผ ์์ฑํ๋ ๊ฒ์ด ๋ ์ด๋ ค์์ง๋๋ค (์ด๋ก ์ ์ผ๋ก ์์ค ๋งต์ ๋ฐ์ดํฐ๋ฅผ ์๋ณธ ํ์ผ์ ๋งคํํ๊ธฐ์ ์ถฉ๋ถํ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ง๋ง ๋ถ๊ฐ๋ฅํ์ง๋ ์์ต๋๋ค).
์ด๊ฒ์ ๋์ ์ด๋ฉฐ Babel, gulp, istanbul ๋ฐ ์์ค ๋งต / ๋ชจ๋์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ ์ดํดํด์ผํฉ๋๋ค (PDF.js๊ฐ ๋ชจ๋ ๋ชจ๋์ ๋ชจ์ PDF.js๋ฅผ ์์ฑํ๋ ์์ค ์ฝ๋์ ๊ด๋ จ ์์น๋ฅผ ์ด๋ฏธ ์ธ๊ธํ์ต๋๋ค. ๋์๊ด-# 8632 ์ฐธ์กฐ). ์ด ์ง์์ ๋งค์ฐ ์ ์ฉํ๋ฏ๋ก ๋์ ์ ๋๋ ค์ํ์ง ์์ผ์๋ฉด ์ ์ ์๋ด์ ๋ฐ๋ผ ํ์ ํ ์ ์์ต๋๋ค.
ํ์ง๋ง ๊น์ด ๋ค์ด๊ฐ๊ธฐ ์ ์ ๋ธ๋ผ์ฐ์ ์์ ์ปค๋ฒ๋ฆฌ์ง ๋ณด๊ณ ์๋ฅผ ๊ฐ์ ธ ์ค๋ ๊ฒ๋ถํฐ ์์ํด ๋ณด๊ฒ ์ต๋๋ค. ๋ธ๋ผ์ฐ์ ์์ ํ
์คํธ๋ฅผ ์คํํ๋ ๋ฐฉ๋ฒ์๋ unittest
๋ฐ browsertest
๋ ๊ฐ์ง๊ฐ ์์ต๋๋ค. Node.js์์ ๋จ์ ํ
์คํธ๋ฅผ ์คํํ๋ ๋น๊ต์ ์ฌ์ด ๋ฐฉ๋ฒ์ด ์ด๋ฏธ ์์ผ๋ฏ๋ก browsertest
์ ์ง์คํ๊ฒ ์ต๋๋ค. ๋ธ๋ผ์ฐ์ ํ
์คํธ๋ ๊ฐ๋ณ ๋ชจ๋์ ์ฌ์ฉํ์ง ์์ง๋ง generic
gulp GENERIC_DIR
, ์ผ๋ช
build/generic/
์ํด ์์ฑ ๋ PDF.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ฐ๋ผ์ build/generic
์ ์ฝ๋ ๊ณ์ธก์ ์ถ๊ฐํ๋ ๊ฒ์ผ๋ก ์ถฉ๋ถํฉ๋๋ค. build/generic/
๋ฅผ ์
๋ ฅ ๋๋ ํ ๋ฆฌ๋ก ์ฌ์ฉํ๊ณ ๊ฒฐ๊ณผ๋ฅผ coverage/build/generic
์ข์ต๋๋ค.
๊ทธ ์ผ์ ํ ํ์๋ ๋ณ๊ฒฝํ ํ์๊ฐ test/test_slave.html
๋ฌด์กฐ๊ฑด๋ก๋ํ์ง์ ../build/generic/build/pdf.js
A์ <script>
ํ๊ทธ ๋ง ์กฐ๊ฑด ์ค ํ๋๋ก๋ ../build/generic/build/pdf.js
๋๋ ../coverage/build/generic/build/pdf.js
์ผ๋ถ ๊ตฌ์ฑ ๋งค๊ฐ ๋ณ์์ ๋ฐ๋ผ ๋ค๋ฆ
๋๋ค (ํ
์คํธ๋ฅผ ์ํด ํ์์ URL์ ํ๋ ์ฝ๋ฉ ํ ์ ์์ต๋๋ค. ์ปค๋ฒ๋ฆฌ์ง ๋ณด๊ณ ์๋ฅผ ํ
์คํธ ์๋ฒ๋ก ๋ค์ ๋ณด๋ด๋ ๋ ์ด๋ ค์ด ์์
์ ์๋ฃ ํ ํ ๋์ค์์ด ํ๋ ์ฝ๋ฉ ๋ ๋งค๊ฐ ๋ณ์๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋งค์ฐ ์ฝ์ต๋๋ค) .
์ผ๋ฐ pdf.js
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ธ์คํธ๋ฃจ๋จผํธ ๋ pdf.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๊ต์ฒดํ๋ฉด ํ
์คํธ ์คํ์ผ๋ก ์ปค๋ฒ๋ฆฌ์ง ํต๊ณ๊ฐ ์์ฑ๋ฉ๋๋ค. ๊ฒฐ๊ณผ๋ ์ ์ญ window.__coverage__
๋ณ์์ ์ ์ฅ๋ฉ๋๋ค. ๋ธ๋ผ์ฐ์ ๋ด ํ
์คํธ ๋๋ผ์ด๋ฒ๊ฐ ์๋ฃ๋๋ฉด ( test / driver.js์ _quit
๋ฉ์๋ )์ด ๋ณด๊ณ ์๋ฅผ ์ง๋ ฌํ (์ : JSON.stringify(window.__coverage__)
)ํ๊ณ XMLHttpRequest
๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ๋ก ๋ณด๋ผ ์ ์์ต๋๋ค. driver.js
ํ์ผ์ ๋ค๋ฅธ ์์น ์ฐธ์กฐ- /tellMeToQuit
๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ธฐ ์ ์ ๋ณด๊ณ ์๋ฅผ ์๋ฒ๋ก ๋ณด๋ด์ผํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ฒ์ ๋ณด๊ณ ์๊ฐ ์ ์ก๋์ง ์์ ์ ์์ต๋๋ค. ๋ฐ๋ฅด๊ฒ).
https://github.com/mozilla/pdf.js/blob/ba5dbc96326518ad716158ef040f61794cc72202/test/test.js์์ ์ ์ฌ์ฉ์ ์ง์ API ํธ์ถ์ ๋ํ ์ ์ฒ๋ฆฌ๊ธฐ๋ฅผ ์ถ๊ฐ ํ ์ ์์ต๋๋ค. ์ฝ๋ ์์ ๋ฅผ ๋ณด๋ ค๋ฉด driver.js
์์ XMLHttpRequest
ํธ์ถ (์ : /tellMeToQuit
๋ฉ์์ง)์๋ณด๊ณ test.js
์์ ํด๋น ํธ๋ค๋ฌ๋ฅผ ์ฐพ์ผ์ญ์์ค. ์๋ฒ ์ธก์์ ์ง๋ ฌํ ๋ JSON์ ๋ฐ์ผ๋ฉด fs.writeFileSync
API๋ฅผ ์ฌ์ฉํ์ฌ ์ปค๋ฒ๋ฆฌ์ง ๋ณด๊ณ ์๋ฅผ ํ์ผ์ ์๋๋ค (๋ค์ test.js
์ ํ์ผ ์์ฑ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ฃผ๋ ๋ค๋ฅธ ์๊ฐ ์์ต๋๋ค). .
@ Rob--W ๋๋ ํ์ฌ ์ํด๊น์ง ์ฌ์ฉํ ์ ์์ต๋๋ค ... ๋๋ ๊ทธ ํ์ ํ์คํ ์ก์ ๊ฒ์ ๋๋ค
๊ทธ๋ฐ ๋ค์ test / test_slave.html์ ๋ณ๊ฒฝํ์ฌ ../build/generic/build/pdf.js๋ฅผ
๊ทธ๋ฐ ๋ค์ test / test_slave.html์ ๋ณ๊ฒฝํ์ฌ ../build/generic/build/pdf.js๋ฅผ
@ Rob--WI๋ (testFilter ๋งค๊ฐ ๋ณ์๋ฅผ ๋ชจ๋ฐฉํ์ฌ) tests.js
์์ ์ ์ฌํ ๋งค๊ฐ ๋ณ์๋ฅผ ๋ง๋ค ์ ์์์ง๋ง test/test_slave.html
ํตํฉํ๋ ๊ฒ์ ์ฌ์ ํ โโ๋ฌธ์ ๊ฐ๋ฉ๋๋ค. ๋๋จธ์ง ๋ณ๊ฒฝ ์ฌํญ์ PR์ ๋ค์ ๋ฐฉ๋ฌธํ์ญ์์ค. ์๋ก์ด ์ปค๋ฐ์ ํธ์ํ์ต๋๋ค. # 9308
๋ํ IRC ์ฑ๋ ๋๋ pdf.js ๊ด๋ จ slack / gitter / mailing list์ ์ฐธ์ฌํ๊ธฐ์ํ ๋งํฌ๋ฅผ ์ ๊ณต ํ ์ ์๋ค๋ฉด.
@ Rob--W ์ฌ์ ํ ๋ฌธ์ ๊ฐ ์์ต๋๊น? ๊ทธ๋ ๋ค๋ฉด ์์
ํ๊ณ ์ถ์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ์๋๋ # 9308์ด๋ฏ๋ก ์๊ฐ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ํ๋ ์ต์ํ์ ๋ฒ์ , ์ฆ ๋ก์ปฌ์์๋ง ์๋ํ๋ ๋ฒ์ ์ ์ด์ ์ ๋ง์ถ๊ฒ ์ต๋๋ค. ๋ด์ด๋ Travis CI์์ ์๋ ํ ํ์๊ฐ ์์ต๋๋ค. ์ง์ญ์ ์ผ๋ก ์ปค๋ฒ๋ฆฌ์ง ๋ณด๊ณ ์๋ฅผ ๋ง๋ค ์ ์๋ค๋ฉด ๊ทธ๊ฒ์ ์ด๋ฏธ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋ก์ปฌ์ ๊ฒฝ์ฐ ๊ณ์ธก ๋จ์ ํ
์คํธ๋ฅผ ์คํํ๊ณ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ปค๋ฒ๋ฆฌ์ง ๋ณด๊ณ ์๋ฅผ ์์ฑํ๋ gulp coverage
๋ผ๋ ๋ช
๋ น์ ๋ง๋๋ ๊ฒ์ด ์ข์ต๋๋ค. ์๋ํ๊ณ ๋ณํฉ๋๋ ๊ฒ์ ํญ์ ๋ฐ๋ณต ํ ์ ์์ต๋๋ค.
@timvandermeij ์ฌ์ ํ ํ์ฑํ๋์ด ์์ต๋๊น? ๋๋ ํ ์์์ด
์, ์์ ๋กญ๊ฒ ์์ ํ์ญ์์ค! ์ฐ๋ฆฌ๋ ๊ฐ๋จํ๊ฒ ์์ํด์ผํฉ๋๋ค. ๊ฐ๋ฅํ ์ ๊ทผ ๋ฐฉ์์ https://github.com/mozilla/pdf.js/issues/8632#issuecomment -455868037์ ์ฐธ์กฐ
@timvandermeij ๋ด๊ฐ์ด ๊ธฐํ๋ฅผ ์ค ์ ์๋์ง ๊ถ๊ธํด? ๋ ํฐ ์ง๋ฌธ ์ค ํ๋๋ npm ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ณด๊ณ ์๋ฅผ ์์ฑ ํ ์ ์๋์ง ์๋๋ฉด gulp
์์
์ด์ด์ผํ๋์ง ์ฌ๋ถ์
๋๋ค.
gulp
๋๋ฌด ์ต์ํ์ง๋ ์์ง๋ง ์ด๊ฒ์ด ์๊ตฌ ์ฌํญ์ธ์ง ๋ฐฐ์ฐ๊ณ ์ถ์ต๋๋ค.
์๋ฌด๋ ์ด๊ฒ์ ๋ํด ์์ ํ๊ณ ์๋ค๊ณ ์๊ฐํ์ง ์์ผ๋ฏ๋ก ๊ณ์ํ์ญ์์ค! ์ด๊ธฐ ํจ์น๋ฅผ ์ํด ๋จ์ํ๊ฒ ์ ์งํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ฐ๋ฆฌ๋ Gulp๋ฅผ ์ฃผ์ ๋๊ตฌ๋ก ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๊ทธ๊ฒ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ํธ๋์ง๋ง ๋ค๋ฅธ ์ ์๋ ์ด๋ ค ์์ต๋๋ค. ๊ตฌํ ์์ด๋์ด๋ https://github.com/mozilla/pdf.js/issues/8632#issuecomment -455868037์ ์ฐธ์กฐ
์ด ์์ ์ํ๊ณ ์ถ์ต๋๋ค. ๋ฌธ์ ๊ฐ ์ฌ์ ํ ์ด๋ ค ์์ต๋๊น? ๋ฒ๊ทธ์ ๋ํด ๋ ์ ์ดํดํ ์์๋ ๊ณณ์ ์ด๋์ ๋๊น?
@jezhou ๋์ด ์์ ์ ์งํ ์ค์ด๋ฉฐ # 11580์์ ์ฝ๊ฐ์ ์ง์ ์ ์ด๋ฃจ์์ต๋๋ค. PR์ ์ต๊ทผ์ ์ ๋ฐ์ดํธ๋์ง ์์์ต๋๋ค.
์
๋ฐ์ดํธ ํด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ์์
์ ์์ํ ์ ์์๊น์? ์ด๋
๋ ๋ง์ ์ ๋ณด๋ฅผ ์ป์ ์ ์์ต๋๊น? ๋ฌธ์ ๋ฐ ๋๋จธ์ง์ ๋ํด ??
2020 ๋ 5 ์ 16 ์ผ ํ ์์ผ ์คํ 5:56 Rob Wu, [email protected] ์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
@jezhou https://github.com/jezhou ์ด ์์ ์ค์ด ์๊ณ ์ผ๋ถ๋ฅผ ๋ง๋ค์์ต๋๋ค.
์งํ # 11580 https://github.com/mozilla/pdf.js/pull/11580 . PR
๊ทธ๋๋ ์ต๊ทผ์ ์ ๋ฐ์ดํธ๋์ง ์์์ต๋๋ค.โ
๋๊ธ์ ๋ฌ์ ๊ธฐ ๋๋ฌธ์ ์์ ํ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/mozilla/pdf.js/issues/8632#issuecomment-629637879 ,
๋๋ ๊ตฌ๋ ์ทจ์
https://github.com/notifications/unsubscribe-auth/AKUZ65CGSIZF6OMFZWENWF3RR2A77ANCNFSM4DSK7SGQ
.