【问题标题】:Require fails on a PhantomJs test要求在 PhantomJs 测试中失败
【发布时间】:2015-11-18 00:40:47
【问题描述】:

我有一个简单的库,

-- src/lib.js --
function libtest() {
    return 2;
}

我想测试的,我收集的将需要 PhantomJs。我有一个测试文件:

-- test/lib.test.js --
var fs = require('fs');
var assert = require('assert');
describe('Test module', function() {
    var s = fs.readFileSync('../src/lib.js', 'utf8');
    eval(s);
    it('Shows name', function() {
        assert.equal(libtest(), 2);
    });
});

我为浏览器准备的:

# browserify lib.test.js -o tests.js

然后包含在我的主页中:

-- test/index.html --
<html>
<head>
  <meta charset="utf-8">
  <title>Mocha Tests</title>
  <link href="../../node_modules/mocha/mocha.css" rel="stylesheet" />
</head>
<body>
  <div id="mocha"></div>
  <script src="../../node_modules/mocha//mocha.js"></script>
  <script>mocha.setup('bdd')</script>
  <script src="tests.js"></script>
  <script>
    if (window.mochaPhantomJS) mochaPhantomJS.run();
    else mocha.run();
  </script>
</body>
</html>

但是,当我运行测试时:

# grunt test

我收到以下错误:

运行“mocha_phantomjs:all”(mocha_phantomjs)任务类型错误: “未定义”不是函数(评估 'fs.readFileSync('../src/lib.js', 'utf8')')

在 file:///Users/ekkis/D​​evelopment/tst/test/tests.js:5
在 file:///Users/ekkis/D​​evelopment/tst/node_modules/mocha//mocha.js:529
在 file:///Users/ekkis/D​​evelopment/tst/test/browser/tests.js:10 中 s 在 file:///Users/ekkis/D​​evelopment/tst/test/browser/tests.js:1 中 e at file:///Users/ekkis/D​​evelopment/tst/test/browser/tests.js:1 at file:///Users/ekkis/D​​evelopment/tst/test/browser/tests.js:1090 不安全 JavaScript 尝试使用 URL about:blank from frame 访问框架 带网址 文件:///Users/ekkis/D​​evelopment/tst/node_modules/mocha-phantomjs-core/mocha-phantomjs-core.js。 域、协议和端口必须匹配。

这似乎是在抱怨 fs 未定义。但是,如果require('assert') 工作,我想require('fs') 应该工作。但我不太清楚它的运行环境。

我错过了什么?

【问题讨论】:

    标签: javascript node.js unit-testing browserify mocha-phantomjs


    【解决方案1】:

    好的。答案就是将库包含在.html 中。由于测试在浏览器中运行,因此该库将可用。像这样:

    <body>
      <div id="mocha"></div>
      <script src="../../node_modules/mocha//mocha.js"></script>
      <script>mocha.setup('bdd')</script>
      <script src="../../src/lib.js"></script>
      <script src="tests.js"></script>
    

    【讨论】:

      猜你喜欢
      • 2016-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多