如何在用Typescript编写的浏览器上运行Mocha测试

时间:2019-07-25 10:05:43

标签: typescript webpack mocha

我是NodeJSTypeScript的新手。 所以,我现在有点卡住了。

我的项目配置是这样的。

+------------+---------------------------+
|            |          purpose          |
+------------+---------------------------+
| Webpack    | create a bundle JS file   |
| TypeScript | ES5 transpile             |
| Mocha      | TDD test                  |
+------------+---------------------------+

我正在尝试运行用Mocha编写的TypeScript测试代码。
并且此测试使用的是XMLHttpRequest模块。

我的项目结构如下。

|_ dist (for bundle file)
|_ script
|   \_ lib
|       \_ ajax.ts (my module)
\_ test
    \_ script
        \_ lib
            \_ ajax.spec.ts (to test my module)

我发现XMLHttpRequest模块是用于浏览器的。
我可以替换它来安装npm模块xmlhttprequest
但是,我需要检查响应是否已收到以及回调函数是否已执行。

运行测试后,我成功打开了请求,但是无法获得任何响应并且回调函数未执行。
因此,我决定在浏览器上测试XMLHttpRequest模块。

幸运的是,我找到了running Mocha Tests in a browser的教程。
但是,我的问题是我的Mocha代码是用TypeScript编写的。

所以我认为我的测试过程如下。

  
      
  1. 编译ajax.spec.ts,编译为ajax.jsajax.spec.js
  2.   
  3. 使用JSajax.jsajax.spec.js制作一个Webpack捆绑文件。
  4.   
  5. 制作一个html类似的教程。
  6.   
  7. 打开html并检查我的测试结果。
  8.   


我可以吗我应该捆绑编译文件吗?
是否有示例或教程用于在浏览器中运行以Mocha编写的TypeScript测试

谢谢。

1 个答案:

答案 0 :(得分:0)

  1. 安装依赖项:

    npm install mocha ts-node -g
    npm install mocha ts-node --save-dev
    
  2. 安装类型定义:

    npm install @types/mocha --save-dev
    
  3. 使用npm test命令运行测试。将以下脚本添加到您的package.json

    {
      "scripts": {
        "test": "mocha -r ts-node/register test/**/*.spec.ts", // correct me if I mentioned the wrong directory to the tests folder.
      },
    }