Mocha 在浏览器中加载空白

Mocha Loading Blank in Browser

上下文

我以前用过很多次 Mocha,包括在浏览器中和仅使用命令行。我倾向于使用 Chai 的 expect 模块来进行 bdd。

我有五个测试文件一直在使用命令行 npm test。我只想 运行 在浏览器中进行测试以便更好地调试。

问题

这个设置让我大吃一惊。我要么得到一个没有测试的空白 Mocha 页面,要么我在屏幕上看到第一个测试闪现,然后它重定向。

当前 specRunner.html

<!DOCTYPE HTML
<html>
<head>
  <title>Mocha Tests</title>
  <link rel="stylesheet" href="node_modules/mocha/mocha.css" />
  <script src="node_modules/jquery/dist/jquery.min.js"></script>
  <script src="node_modules/mocha/mocha.js"></script>
  <script src="node_modules/chai/chai.js"></script>
  <script>mocha.setup('bdd');</script>
  <script src="mineLocation.js"></script>
  <script src="test/mineTests.js"></script>
  <script>
      window.expect = chai.expect;
      mocha.run();
  </script>
</head>
<body>
  <div id="mocha"></div>
</body>
</html>

之前的尝试

给你,刚测试过。

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>Mocha Test</title>
  <link rel="stylesheet" type="text/css" href="node_modules/mocha/mocha.css">
</head>

<body>
  <div id='mocha'></div>
  <div id='app'></div>

  <script src="node_modules/mocha/mocha.js"></script>
  <script src="node_modules/chai/chai.js"></script>
  <script src="app.js"></script>
  <script>
    mocha.setup('bdd');
    var expect = chai.expect;
  </script>
  <!-- Tests -->
  <script src="app_test.js"></script>
  <script>
    mocha.run();
  </script>
</body>

</html>

因此,我发现这不一定是 HTML 设置的问题,而是测试的问题。

在文件中全局设置 location 变量会导致奇怪的重定向(到 /2,1)和错误 "Cannot read property 'appendChild' of null".

在第 4 行的 describe 语句中移动变量可解决问题。

我的最终 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="node_modules/chai/chai.js"></script>
  <script>var expect = chai.expect;</script>

  <!-- src files -->
  <script src="narcissistic.js"></script>
  <script src="morseCodeDecoder.js"></script>
  <script src="windComponents.js"></script>
  <script src="mineLocation.js"></script>

  <!-- test files -->
  <script src="test/narcissisticTests.js"></script>
  <script src="test/morseTests.js"></script>
  <script src="test/windTests.js"></script>
  <script src="test/mineTests.js"></script>

  <script>mocha.run();</script>
</body>
</html>