2016-09-06 1 views
0

Ich habe eine Phoenix-App und versuche, Mocha für JavaScript-Unit-Tests zu bekommen. Ich möchte Modul 'Zwei' testen, das Modul 'Eins' importiert, aber ich kann nicht herausfinden, wie man Mocha konfiguriert, um Modul eins zu finden. HierMocha kann Module in importiertem Code nicht finden

ist der Testcode:

web/static/js/one.js

export var One = 1; 

web/static/js/two.js

import {One} from "web/static/js/one"; 
export var Two = function() {return One + One;} 

> Test/js/two_test.js

import assert from 'assert'; 
import {Two} from "../../web/static/js/two"; 

describe('Two()', function() { 
    it('returns value 2', function() { 
    assert.equal(2, Two()); 
    }); 
}); 

Hier ist der Ausgang, wenn ich npm test

home:~/elixir/optitrue$ npm test 

> @ test /home/jon/elixir/optitrue 
> mocha --compilers js:babel-register test/js/**/*.js 

module.js:457 
    throw err; 
    ^

Error: Cannot find module 'web/static/js/one' 
    at Function.Module._resolveFilename (module.js:455:15) 
    at Function.Module._load (module.js:403:25) 
    at Module.require (module.js:483:17) 
    at require (internal/module.js:20:19) 
    at Object.<anonymous> (two.js:1:1) 
    at Module._compile (module.js:556:32) 
    at loader (/home/jon/elixir/optitrue/node_modules/babel-register/lib/node.js:148:5) 
    at Object.require.extensions.(anonymous function) [as .js] (/home/jon/elixir/optitrue/node_modules/babel-register/lib/node.js:158:7) 
    at Module.load (module.js:473:32) 
    at tryModuleLoad (module.js:432:12) 
    at Function.Module._load (module.js:424:3) 
    at Module.require (module.js:483:17) 
    at require (internal/module.js:20:19) 
    at Object.<anonymous> (two_test.js:2:1) 
    at Module._compile (module.js:556:32) 
    at loader (/home/jon/elixir/optitrue/node_modules/babel-register/lib/node.js:148:5) 
    at Object.require.extensions.(anonymous function) [as .js] (/home/jon/elixir/optitrue/node_modules/babel-register/lib/node.js:158:7) 
    at Module.load (module.js:473:32) 
    at tryModuleLoad (module.js:432:12) 
    at Function.Module._load (module.js:424:3) 
    at Module.require (module.js:483:17) 
    at require (internal/module.js:20:19) 
    at /home/jon/elixir/optitrue/node_modules/mocha/lib/mocha.js:220:27 
    at Array.forEach (native) 
    at Mocha.loadFiles (/home/jon/elixir/optitrue/node_modules/mocha/lib/mocha.js:217:14) 
    at Mocha.run (/home/jon/elixir/optitrue/node_modules/mocha/lib/mocha.js:485:10) 
    at Object.<anonymous> (/home/jon/elixir/optitrue/node_modules/mocha/bin/_mocha:403:18) 
    at Module._compile (module.js:556:32) 
    at Object.Module._extensions..js (module.js:565:10) 
    at Module.load (module.js:473:32) 
    at tryModuleLoad (module.js:432:12) 
    at Function.Module._load (module.js:424:3) 
    at Module.runMain (module.js:590:10) 
    at run (bootstrap_node.js:394:7) 
    at startup (bootstrap_node.js:149:9) 
    at bootstrap_node.js:509:3 

brunch.config

exports.config = { 
    // See http://brunch.io/#documentation for docs. 
    files: { 
    javascripts: { 
     joinTo: "js/app.js" 
    }, 
    stylesheets: { 
     joinTo: "css/app.css" 
    }, 
    templates: { 
     joinTo: "js/app.js" 
    } 
    }, 

    conventions: { 
    assets: /^(web\/static\/assets)/ 
    }, 

    // Phoenix paths configuration 
    paths: { 
    watched: [ 
     "web/static", 
     "test/static" 
    ], 

    // Where to compile files to 
    public: "priv/static" 
    }, 

    // Configure your plugins 
    plugins: { 
    babel: { 
     // Do not use ES6 compiler in vendor code 
     ignore: [/web\/static\/vendor/] 
    } 
    }, 

    modules: { 
    autoRequire: { 
     "js/app.js": ["web/static/js/app"] 
    } 
    }, 

    npm: { 
    enabled: true, 
    whitelist: ["phoenix", "phoenix_html"] 
    } 
}; 

Antwort

1

Die laufen Fehler ist ganz klar:

Error: Cannot find module 'web/static/js/one' 

Bedeutung der Pfad, den Sie nicht arbeiten zur Verfügung gestellt wird, versuchen Sie eine relative Pfade verwenden:

import {One} from "./one"; 
Verwandte Themen