小编pjo*_*336的帖子

使用Mocha/Chai/Sinon全局命名空间问题的Typescript

有没有人知道在打字稿中用ts-node设置测试的正确方法是让Mocha和Chai和Sinon全部被识别,而不需要在每个测试文件中手动导入?我有项目中包含的所有类型定义,包括mocha,sinon,chai.我有以下(它正常工作和运行测试):

mocha.opts:

--require ts-node/register
--option value spec/**/*.spec.ts
--require spec/bootstrap/test-setup.js
--recursive
--retries 0
--sort
--timeout 10000
--ui bdd
Run Code Online (Sandbox Code Playgroud)

package.json中的测试脚本:

"test": "yarn build && NODE_ENV=test nyc mocha ./spec/bootstrap/test-helper.js --opts ./spec/mocha.opts"
Run Code Online (Sandbox Code Playgroud)

我有2个辅助方法(出于某种原因,我必须在JS中做)

测试setup.js:

require('mocha');
var chai = require('chai');
chai.use(require('chai-as-promised'));
chai.use(require('sinon-chai'));

global.expect = chai.expect;
global.Promise = require('bluebird');
Run Code Online (Sandbox Code Playgroud)

测试helper.js:

const sinon = require('sinon');
const _ = require('lodash');
const db = require('../../src/models');

before(() => {
  global.sandbox = sinon.sandbox.create();
});

afterEach(function () {
  global.sandbox.restore();
});

after(() => {
  db.default.sequelize.close();
});
Run Code Online (Sandbox Code Playgroud)

最后一个用于测试设置的垃圾规范:

describe('app', () => {
  const bar …
Run Code Online (Sandbox Code Playgroud)

mocha.js chai typescript visual-studio-code ts-node

7
推荐指数
0
解决办法
1176
查看次数

标签 统计

chai ×1

mocha.js ×1

ts-node ×1

typescript ×1

visual-studio-code ×1