【问题标题】:Mocha cannot compile Typescript code on WindowsMocha 无法在 Windows 上编译 Typescript 代码
【发布时间】:2017-05-15 13:35:06
【问题描述】:

对于我的 nodejs 模块,我使用 Mocha 和 Chai 编写了一些单元测试。它们在 macOS 上运行良好,但在 Windows 上编译失败,出现以下编译器错误:

D:\projects\antlr4-graps>npm test

> antlr4-graps@1.2.0 test D:\projects\antlr4-graps
> mocha --compilers ts:ts-node/register,tsx:ts-node/register


D:\projects\antlr4-graps\node_modules\ts-node\src\index.ts:312
          throw new TSError(formatDiagnostics(diagnosticList, cwd, ts, lineOffset))
                ^
TSError: ⨯ Unable to compile TypeScript
test\test.ts (17,1): Cannot find name 'describe'. (2304)

编译失败的代码是:

describe('antlr4-graps', function () {

这是完全有效的代码 (the full version of that file is on Github)。我仔细检查了 mocha 和 chai 是否安装为本地节点模块,包括它们的 TS 等效项(@type/chai 和 @type/mocha)。

如何修复编译?

【问题讨论】:

    标签: node.js typescript mocha.js


    【解决方案1】:

    您必须在测试文件中导入 Mocha。我已经复制了一个项目,其中包含您对已安装内容的描述,在这里我只需要添加:

    import "mocha";
    

    在测试文件的开头,以便describe 及其同级在全局空间中定义。

    【讨论】:

    • 优秀。那是缺少的部分(就像说它在 macOS 上没有该导入的情况下运行)。有趣的是 mocha 在一次调用中运行我的测试两次。但也许这是它当前报告的错误的结果。总之,与 macOS 相比,行为有很大不同,但应该可以解决这些差异。谢谢。
    • 我刚刚看到测试在 vscode 中运行良好,只有从命令行运行它们才会给我错误。可能是由于不同的 tsc 版本(我在那个盒子上也安装了 VS 2013 和 VS 2015)。
    猜你喜欢
    • 2017-10-01
    • 1970-01-01
    • 2010-11-19
    • 1970-01-01
    • 2020-12-22
    • 2016-10-16
    • 2020-08-10
    • 2017-08-25
    • 1970-01-01
    相关资源
    最近更新 更多