Vm2: Mocha ํ…Œ์ŠคํŠธ๋Š” ์ผ๋ฐ˜ ๋Ÿฐํƒ€์ž„๊ณผ ๋‹ค๋ฅธ ๋™์ž‘์„ ํ•ฉ๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2017๋…„ 04์›” 28์ผ  ยท  2์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: patriksimek/vm2

mocha์— ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ์žˆ์ง€๋งŒ ๋งค์šฐ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

A. ๋ฐ”๋‹๋ผ ์ฝ”๋“œ๋Š” ์ž˜ ๋Œ์•„๊ฐ„๋‹ค!

const body: string = `
            var moment = require('moment');
            setInterval(function(){
                console.log(moment().unix());
            }, 2000)
        `
const vm = new NodeVM({
    console: 'redirect',
    require: {
           external: true,
                root: process.cwd()
            }
     })
vm.run(body)
vm.on('console.log', function(consoleMessage){
      console.log('from event', consoleMessage)
})

B. ์ด Mocha ์Šคํฌ๋ฆฝํŠธ์—์„œ ์ƒˆ๋กœ์šด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

describe('Vanilla Script Test', function () {
    it('should return a console log of a unix from moment', function (done) {
        const body: string = `
            var moment = require('moment');
            setInterval(function(){
                console.log(moment().unix());
            }, 2000)
        `
        const vm = new NodeVM({
            console: 'redirect',
            require: {
                external: true,
                root: process.cwd()
            }
        })
        vm.run(body)
        vm.on('console.log', function(consoleMessage){
            done()
        })
    })
})

C. Mocha์—์„œ๋งŒ ๋ฐœ์ƒํ•˜๋Š” ์ƒˆ๋กœ์šด ์˜ค๋ฅ˜

VMError: You must specify script path to load relative modules.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

vm.run(body, 'myFile.js') ์™€ ๊ฐ™์ด $ vm.run ์— ํŒŒ์ผ ์ด๋ฆ„์„ ์ „๋‹ฌํ•˜๋ฉด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  2 ๋Œ“๊ธ€

vm.run(body, 'myFile.js') ์™€ ๊ฐ™์ด $ vm.run ์— ํŒŒ์ผ ์ด๋ฆ„์„ ์ „๋‹ฌํ•˜๋ฉด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ์ตœ๊ทผ ํ™œ๋™์ด ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™์œผ๋กœ ์˜ค๋ž˜๋œ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋” ์ด์ƒ ํ™œ๋™์ด ์—†์œผ๋ฉด ํ์‡„๋ฉ๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ๊ธฐ์—ฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰

๊ด€๋ จ ๋ฌธ์ œ

patriksimek picture patriksimek  ยท  15์ฝ”๋ฉ˜ํŠธ

keyosk picture keyosk  ยท  64์ฝ”๋ฉ˜ํŠธ

ghost picture ghost  ยท  23์ฝ”๋ฉ˜ํŠธ

somebody1234 picture somebody1234  ยท  4์ฝ”๋ฉ˜ํŠธ

unxcepted picture unxcepted  ยท  11์ฝ”๋ฉ˜ํŠธ