我需要使用mocha-phantomjs测试我的Node js apllication。我已经尝试了以下代码来测试应用程序,但我得到了错误' ReferenceError:找不到变量:require& #39;。如何解决这个问题。
的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);
});
});
});
将mtml文件作为mocha-phantomjs test / test.html运行时出现错误
ReferenceError: Can't find variable: require
答案 0 :(得分: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>
所以你不需要任何你需要的东西。再次,想到这就像你正在做客户端的一切。
答案 1 :(得分:0)
查看browserify,它可以让您自动包含npm库:https://github.com/substack/node-browserify
还建议使用connect-browserify在开发https://github.com/andreypopp/connect-browserify和资产机架https://github.com/techpines/asset-rack中自动重新加载,以便在生产中自动捆绑。