使用带有Mocha和Zombie的Test Runner

时间:2014-04-22 17:47:58

标签: mocha zombie.js

我想运行测试运行器以及我的Zombie测试的命令行。到目前为止,我尝试的是:

1)一次测试

var Browser = require('zombie'),
should = require('should'),
browser = new Browser();


describe('Loads pages', function() {

    it('Google.com', function(done) {
        browser.visit('/index.html', function () {
            browser.text('title').should.equal('Hello World');
            done();
        });
    });

});

2)这个Html页面

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Tests</title>
  <link rel="stylesheet" media="all" href="../node_modules/mocha/mocha.css">
</head>
<body>
  <div id="mocha"><p><a href=".">Index</a></p></div>
  <div id="messages"></div>
  <div id="fixtures"></div>


  <!--Imports -->
  <script src="../node_modules/should/should.js"></script>
  <script src="../node_modules/mocha/mocha.js"></script>
  <script src="vendor/require.js"></script>
  <script>mocha.setup('bdd')</script>

  <!--Tests -->
  <script src="test.js"></script>

  <script>
    onload = function(){
        var runner = mocha.run();
   };
  </script>
</body>
</html>

从命令行运行mocha一切都很好,但如果我打开浏览器页面,我会得到..

  

错误:尚未为上下文加载模块名称“zombie”:_。使用   要求([])http://requirejs.org/docs/errors.html#notloaded

我正在寻找加载节点模块中的zombie.js文件,但我看不出任何明显的东西? 有没有办法摆脱这个错误并使其工作?

1 个答案:

答案 0 :(得分:0)

var Browser = require('zombie'),

这是nodejs语法,但您在浏览器中的requirejs上下文中使用它。 requirejs抱怨你必须使用amd格式加载模块,如: var Browser = require(['zombie'], function(zombie) { ... });

但这无论如何都行不通,因为zombie是为nodejs(命令行)构建的。它会尝试一切来模拟浏览器 - 所以在浏览器中实际调用它有点太多了。

你想让僵尸测试在摩卡测试跑步者中出现的原因是什么?将测试分离为将从命令行(使用僵尸)调用的验收测试以及将使用testrunner调用的实际单元测试(针对浏览器,没有僵尸)的调试。