【发布时间】:2021-09-03 16:23:01
【问题描述】:
如何使用 Mocha 为主要是 Javascript 的 NPM 包运行 Typescript 测试?
我有一些 Javascript/Node.js 代码正在尝试为其编写单元测试。由于代码对通过浏览器录制的音频样本进行处理,因此我需要通过从本地 dev 文件系统加载 wav 文件来对其进行测试。
因为这在 Typescript 中更容易一些,所以我想用 Typescript 和 Mocha 编写我的单元测试。
但是,Mocha 似乎连基本的存根测试都找不到。
我的包结构如下:
src
index.js
test
test.ts
mocha.opts
test.ts 的样子:
import MyPackage from '../src';
describe('Simple Math Test', () => {
it('should return 2', () => {
assert.equal(1 + 1, 2);
});
});
我的 mocha.opts 看起来像:
--require ts-node/register
--recursive
--reporter spec
--ui bdd
--timeout 20000
test/**/*.ts
但是当我从项目根目录运行mocha 时,它会输出:
Error: No test files found
如果我将我的 test.ts 更改为 test.js,那么它会找到它。我该如何解决这个问题?
编辑:我发现如果我运行命令mocha -r ts-node/register test/test.ts,那么它似乎看到了Typescript测试。
但是,它仍然无法导入我的 Javascript 包:
Cannot find module '../src' or its corresponding type declarations.
import MyPackage from '../src';
【问题讨论】:
-
我认为
test/**/*.ts应该是tests/**/*.ts以匹配文件夹名称,尽管在这种情况下我希望 mocha.opts 位于项目根目录中 -
@apokryfos 这只是我的问题中的一个错字。我的代码在任何地方都使用正确的名称并匹配 mocha.opts 中的模式。
标签: javascript node.js typescript mocha.js