typescript - 找不到模块 'supertest'

标签 typescript node-modules supertest

我正在尝试用 typescript 编写 API 测试。

我已经像这样安装了以下软件包:

npm install -g mocha
npm install chai
npm install supertest
npm install supertest --save-dev
npm install supertest -g
npm install mocha@3.1.2 chai@3.5.0 chai-http@3.0.0 --save-dev
npm install @types/mocha@2.2.32 @types/chai@3.4.34 @types/chai-http@0.0.29 --save-dev
npm install ts-node@3.3.0 --save-dev
npm install typescript@2.0.6 --save-dev

我有这样的 typescript 代码:

import { expect } from 'chai';
import * as supertest from 'supertest';
import 'mocha';

var api = supertest('http://petstore.swagger.io');

describe('API test', () => {
  it('should return a 200 response from petstore', function (done) {
    api.get('/v2/store/inventory')
      .set('Accept', 'application/json')
      .expect(200, done);
  });
})

但是,当我尝试运行时,出现此错误:

mocha -r ts-node/register src/**/branches.ts  
C:\project\node_modules\ts-node\src\index.ts:307
        throw new TSError(formatDiagnostics(diagnosticList, cwd, ts, lineOffset))
              ^
TSError: ⨯ Unable to compile TypeScript
src\API\branches.ts (5,28): Cannot find module 'supertest'. (2307)

我不明白为什么它找不到超测。如您所见,我尝试以各种可能的方式安装 supertest...另外,我的“node_modules”文件夹中确实有一个名为“supertest”的文件夹。

想法?

最佳答案

Supertest 3.0.0 及更早版本不支持 ES6。有一个 issue关于 GitHub 上的内容。

那里也发布了一个解决方法。如果问题消失,我会把它贴在这里:

test_helper.js:

import sinon from 'sinon'
import chai from 'chai'
import sinonChai from 'sinon-chai'
var expect = chai.expect
chai.use(sinonChai)

var supertest = require("supertest");

module.exports = {
  sinon: sinon,
  chai: chai,
  expect: expect,
  supertest: supertest
} 

在您的测试文件中:

import {sinon, chai, expect, supertest} from '../test_helper'

归功于 foxgaocn .

关于typescript - 找不到模块 'supertest',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47757668/

相关文章:

angularjs - 带有 typescript 的angular-ui-router嵌套命名 View

javascript - Babel编译错误: Cannot find module core-js/library/fn/get-iterator

nestjs - bool 查询参数被视为字符串,而不是转换为 bool 数据类型

javascript - 如何做 javascript 请求(supertest,superagent)表现得像 curl --data-binary

json - 如何使用Mocha和Supertest发送格式错误的JSON?

javascript - Vue 使用来自 Vue() 的模板和脚本定义组件

angular - 如何在http调用 Angular 2的catch block 中读取响应主体

typescript - Dart中的递归对象类型?

node.js - 如何在 package.json 中为包提供自定义 url

javascript - 如何从nodejs中的node_modules文件夹访问public文件夹中的包?