【问题标题】:Run typescript tests for Mocha in WebStorm在 WebStorm 中为 Mocha 运行 typescript 测试
【发布时间】:2018-07-24 10:06:01
【问题描述】:

我按照此页面上的说明进行操作:

Running Mocha tests in Webstorm

要在 WebStorm 中运行 Mocha 测试,但我的测试是用 TypeScript 编写的(保存在 .ts 中),我想知道如何运行这些测试?这是一个例子:

describe("My Tests", () => {
    it("Test #1", () => {
        let nluConfig: any = {
            "Provider" : "LUIS",
            "Model" : {
                "ID" : "aaa",
                "Secret" : "bbb"
            }
        };
        debugger;
        let result:any = CNluFactory.getNluProvider(nluConfig);
        expect(result).to.be.an.instanceof(CLuis);
    });
});

这是我当前配置 WebStorm 以运行我的测试的方式:

这是我尝试运行时遇到的错误:

"C:\Program Files\nodejs\node.exe" C:\Repository\Main\node_modules\nyc\bin\nyc.js --reporter=lcovonly --report-dir=C:\Users\User\AppData\Local\Temp\mocha-intellij-coverage- C:\Repository\Main\node_modules\mocha\bin\_mocha --ui bdd --reporter "C:\Program Files\JetBrains\WebStorm 2017.2.1\plugins\NodeJS\js\mocha-intellij\lib\mochaIntellijReporter.js" --recursive C:\Repository\Main\src\test
No test files found

我认为它无法识别我的测试目录中的 TS 文件?

【问题讨论】:

  • 要么转译它们,要么使用 ts-node 之类的东西和node_modules/.bin/mocha --compilers ts:ts-node/register ./tests/**/*.ts
  • 对,但是如何在 WebStorm 中添加它?
  • 在名为 mocha options 的空白字段中

标签: node.js typescript mocha.js webstorm


【解决方案1】:

Mocha 无法原生运行 typescript 文件;您需要预编译它们并将生成的.js 文件传递​​给测试运行程序,或者使用ts-node 即时编译它们,例如(--require ts-node/register/transpile-only 或现在的deprecated --compilers ts:ts-node/register/transpile-only):

当然,你需要确保在mocha旁边安装typescriptts-node模块

【讨论】:

  • 完美运行!
  • --compilersnow deprecated。请改用--require ts-node/register
  • @chazsolo 它不适用于--require ts-node/register(但它适用于单个文件)。
  • 实际上,使用-require ts-node/register/transpile-only 可以获得更快的体验,因为这样可以避免您不需要的 Typescript 类型检查。
  • 上述编译在我的情况下总是失败。 mocha 构建与 ng 构建有何不同?使用什么配置?
猜你喜欢
  • 2016-06-28
  • 1970-01-01
  • 1970-01-01
  • 2020-06-26
  • 1970-01-01
  • 2020-09-05
  • 2016-10-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多