使用HTML报告与Mocha测试框架

whi*_*fin 11 javascript mocha.js node.js

我一直在使用NodeJS和Mocha生成一些测试,我想找到一种方法将结果放入浏览器中.我知道Mocha使用'html'记者支持这个,mocha init <dir>但似乎两个似乎都不适合我(记者实际上甚至没有运行测试就抛出错误).

有人能给我一个通过Mocha运行测试并生成HTML报告的好例子吗?我想模仿的一个例子是在visionmedia网站上.此外,为了举例,我们会说我正在使用一个名为的测试文件example.js.

在此先感谢您的任何帮助,令人惊讶的是,有很少的示例作品.

Pau*_*gel 14

您尝试使用html记者,当您尝试在节点中使用它时抛出:

$ mocha --reporter html > report.html

/usr/local/lib/node_modules/mocha/lib/reporters/html.js:194
    , div = document.createElement('div')
            ^
ReferenceError: document is not defined
Run Code Online (Sandbox Code Playgroud)

根据Mocha文档(以及Github中的相关问题),html记者只能在浏览器中工作,即.在浏览器中测试客户端代码.

如果你想输出HTML的Node.js的测试脚本,使用doc记者,这将产生HTML.


Hen*_*son 7

要让Mocha在浏览器和终端中运行测试,请遵循以下小教程:

我假设一个普通的node.js mocha测试套件有以下插件.

  1. Node.js的
  2. 摩卡

以下树形结构:

/root
  /test
    my_something_spec.js
  /javascript
  index.html
Run Code Online (Sandbox Code Playgroud)

的index.html

免责声明:我公然放弃了各种最佳做法,只是为了指出正确的方向.

<html>
<head>
    <meta charset="utf-8">
    <title>Mocha 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>mocha.setup('bdd')</script>
    <script src="test/my_something_spec.js"></script>
    <script>
        mocha.checkLeaks();
        mocha.run();
    </script>
</body>
</html> 
Run Code Online (Sandbox Code Playgroud)

测试/ my_something_spec.js

describe("my function", function() {
  it("is a function", function() {
    expect(true).to.be(true);
  });
});
Run Code Online (Sandbox Code Playgroud)

使用python -m SimpleHTTPServer 8080来自root 的简单python服务器提供服务并访问localhost:8080将为您提供一个很好的失败测试.从终端运行摩卡将为您提供相同的输出,这expect是未定义的.

  • 确实.我相信OP的问题更多的是:*"我如何测试Node.js脚本,同时具有浏览器的Mocha的良好输出?"* (2认同)