Vm2: Mocha-Tests haben ein anderes Verhalten als die normale Laufzeit

Erstellt am 28. Apr. 2017  ·  2Kommentare  ·  Quelle: patriksimek/vm2

Ich habe einen einfachen Testfall in Mokka, aber es gibt sehr unterschiedliche Ergebnisse:

A. Vanilla Code läuft gut!

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. In diesem Mocha-Skript erhalte ich einen neuen Fehler

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. Der neue Fehler, der nur in Mocha passiert

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

stale

Hilfreichster Kommentar

Wenn Sie einen Dateinamen wie vm.run(body, 'myFile.js') an vm.run übergeben, funktioniert es einfach.

Alle 2 Kommentare

Wenn Sie einen Dateinamen wie vm.run(body, 'myFile.js') an vm.run übergeben, funktioniert es einfach.

Dieses Problem wurde automatisch als veraltet markiert, da es in letzter Zeit keine Aktivität gab. Es wird geschlossen, wenn keine weiteren Aktivitäten stattfinden. Vielen Dank für Ihre Beiträge.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen