Vm2: Тесты Mocha ведут себя иначе, чем обычная среда выполнения

Созданный на 28 апр. 2017  ·  2Комментарии  ·  Источник: patriksimek/vm2

У меня есть простой тестовый пример в мокко, но он дает совсем другие результаты:

О. Ванильный код работает нормально!

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 , например vm.run(body, 'myFile.js') , это просто сработает.

Все 2 Комментарий

Если вы передадите имя файла vm.run , например vm.run(body, 'myFile.js') , это просто сработает.

Эта проблема была автоматически помечена как устаревшая, поскольку в последнее время в ней не было активности. Он будет закрыт, если никакой дальнейшей активности не произойдет. Спасибо за ваш вклад.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги