使用Jest进行测试-TypeError:无法读取未定义的属性'forEach'

Don*_*ona 5 javascript testing npm typescript jestjs

我创建了一个示例项目,用Jest编写测试。我遵循了一些教程。

我在打字稿文件中添加了一个简单的计算功能,如下所示。

计算

 export class Calc {
    public add(num1: number, num2: number) : number {
      return num1 + num2;
    }
    public subtract(num1: number, num2: number) : number {
      return num1 - num2;
    }
  }
Run Code Online (Sandbox Code Playgroud)

然后添加如下测试文件。

import { should } from 'chai';
import { Calc } from './Calc';
should();


let calc = new Calc();
test('adds 1 + 2 to equal 3', () => {
    expect(calc.add(1, 2)).toBe(3);
  });
Run Code Online (Sandbox Code Playgroud)

然后,我尝试如下所述运行测试。然后我得到了这个错误。

PS C:TestProject> npm t

typescriptseleniumtestproject@1.0.0测试C:TestProject开玩笑

C:TestProject \ node_modules \ jest-haste-map \ build \ crawlers \ node.js:49个name.forEach(file => {^

TypeError:默认情况下无法读取未定义的属性'forEach'。readdir(C:\ TestProject \ node_modules \ jest-haste-map \ build \ crawlers \ node.js:49:13)在go $ readdir $ cb(C:\ TestProject \ node_modules \ jest \ node_modules \ graceful-fs \ graceful-fs.js:149:14)位于FSReqWrap.oncomplete(fs.js:135:15)npm ERR!测试失败。有关更多详细信息,请参见上文。

然后,我浏览到显示错误的文件,下面对此进行了介绍。

node_modules \ jest-haste-map \ build \ crawlers \ node.js

phi*_*ick 0

可能导致此错误的一个问题是:检查您是否位于正确的目录中。