2013-05-14 6 views
1

Мне нужно протестировать мой Node js apllication с помощью mocha-phantomjs.I попробовал приведенный ниже код для тестирования приложения, но я получаю ошибку как «ReferenceError: Can not find variable: require'.Как решить эту проблему.Как протестировать приложение Node js с mocha-phantomjs

test.html

<html> 
<head> 
    <title> Tests </title> 
    <link rel="stylesheet" href="./node_modules/mocha/mocha.css" /> 
</head> 
<body> 
    <div id="mocha"></div> 
    <script src="../node_modules/mocha/mocha.js"></script> 
    <script src="../node_modules/should/lib/should.js"></script> 

    <script> 
     mocha.ui('bdd'); 
     mocha.reporter('html'); 

     </script> 
    <script src="test.js"></script> 
    <script> 
     if (window.mochaPhantomJS) { mochaPhantomJS.run(); } 
     else { mocha.run(); } 
    </script> 
</body> 
</html> 

test.js

var module=require('../lib/requiredModule'); 
var should = require('chai').should(); 
describe('Testing',function(){ 

    it('Save Data',function(){ 
     module.save(content,function(err,res){ 
      should.not.exist(err); 
     }); 
    }); 
    }); 

Во время работы HTML-файл в качестве тест-мокко phantomjs/test.html я получаю сообщение об ошибке, как

 ReferenceError: Can't find variable: require 
+1

У браузера нет необходимости в его API, phantomjs и mocha-phantomjs не представляют его для вас. –

ответ

0

Взгляните на браузер, который позволяет автоматически включать библиотеки npm: https://github.com/substack/node-browserify

Также рекомендуется подключить браузер для автоматической перезагрузки в разработке https://github.com/andreypopp/connect-browserify и стойку-ресурс https://github.com/techpines/asset-rack для автоматического комплектации в процессе производства.

2

Итак, я думаю, ваша проблема в том, что выполнение ваших тестов через тестовый бегун в основном запускает их, как если бы они были на стороне клиента. Таким образом, он не сможет найти ваши собственные модули узлов (например, require). Вы можете попробовать загрузить require.js. Или просто используйте

<script src="../node_modules/chai/chai.js"></script> 
    <script> 
     mocha.ui('bdd'); 
     mocha.reporter('html'); 
     var should = chai.should; // This will give you access to chai should. 
    </script> 

Для этого вам не нужно требовать ничего, к чему вы подключились. Опять же, подумайте об этом, как будто вы делаете все на стороне клиента.