1

我需要使用 mocha-phantomjs 测试我的 Node js 应用程序。我已尝试使用以下代码来测试应用程序,但我收到错误为“ReferenceError:找不到变量:需要”。如何解决这个问题。

测试.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>

测试.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 文件作为 mocha-phantomjs test/test.html 运行时,我收到错误消息

      ReferenceError: Can't find variable: require
4

2 回答 2

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>

所以你不需要任何你 src 到的东西。再一次,想想这就像你在做所有客户端的事情。

于 2013-06-19T19:09:26.057 回答
0

看看 browserify,它可以让你自动包含 npm 库:https ://github.com/substack/node-browserify

还建议使用 connect-browserify 用于在开发中自动重新加载https://github.com/andreypopp/connect-browserify和asset-rack https://github.com/techpines/asset-rack用于在生产中自动捆绑。

于 2013-05-14T21:43:28.637 回答