2017-01-24 1 views
2

Ich versuche, Tests mit den Mocha.js + JSDOM Frameworks auszuführen, aber ich habe Probleme, Mocha zu starten. Dies ist in dem Prozess eine React app des Testens der Vue.js Bibliothek. Ich halte die folgende Fehlermeldung erhalten:require.context keine Funktion beim Versuch, Mocha-Tests auszuführen

var req = require.context('./', false, /\.vue$/); 
TypeError: require.context is not a function 

Der Code in Frage:

let req = require.context('./', false, /\.vue$/); 
components.forEach(function (component) { 
    try { 
     let filePath = './' + component + '.vue'; 
     let injected = inject(req(filePath)); 
     Vue.component(getComponentName(component), injected); 

     let appComponent = { 
      name: injected.name, 
      props: { 
       autocompletion: { 
        metadata: getComponentName('template'), 
        score: xTemplatesScore, 
        attributes: injected.props || [] 
       } 
      } 
     }; 

     appComponents.push(appComponent); 

    } catch (err) { 
     console.log(err); 
     console.error('Vue file was not found for component:' + component + '. Please rename your files accordingly (component-name.vue)'); 
    } 

Gibt es eine Möglichkeit, dies zu umgehen und tatsächlich Mocha bekommen zu starten? Oder gibt es einen geeigneten Ersatz für require.context? Ich habe versucht, es mit nur einfacher String Verkettungen zu wiederholen und eine Vanille require, aber das hält mich, dass keiner der Vue Module sagen, gefunden werden kann.

Antwort

2

require.context ist ein Verfahren zur webpack. Ihre Tests müssen gebündelt sein, bevor sie ausgeführt werden können.

Normalerweise würden Sie eine separate webpack Konfigurationsdatei für Ihre Tests erstellen. Sie erstellen dann ein Testpaket mit Webpack und führen dann Mocha für dieses Paket aus. Alternativ können Sie mocha-loader in der Webpack-Testkonfigurationsdatei verwenden und die Tests als Teil des Bündelungsprozesses ausführen lassen.

Weitere Informationen finden Sie in der webpack documentation on testing finden.

Verwandte Themen