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 Script 中,我得到一个新错误

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.

stale

最有用的评论

如果您将文件名传递给vm.run ,例如vm.run(body, 'myFile.js') ,它就可以工作。

所有2条评论

如果您将文件名传递给vm.run ,例如vm.run(body, 'myFile.js') ,它就可以工作。

此问题已自动标记为过时,因为它最近没有活动。 如果没有进一步的活动发生,它将被关闭。 感谢你的贡献。

此页面是否有帮助?
0 / 5 - 0 等级