在我的测试环境中,我使用mocha
作为测试运行器。我曾经在一个setup.js
文件,我配置与摩卡运行在启动时使用节点:在摩卡启动时执行异步功能
mocha --require setup.js
我使用sequelize
我的ORM,我希望它与force
标志设置为初始化配置NODE_ENV
为“测试”真正。我应该在哪里执行sync
功能?
import models from '../src/data/models';
models.sync({
force: true
});
由于它是一个异步函数,测试可能在同步阶段完成之前开始。
您需要使用before钩子。由于同步返回一个承诺,你应该在之前编写 (function(){return models.sync({force:true})}) – aray12
我应该在哪里写这个钩子?我没有一个包含所有测试的主文件,我执行如下测试:'mocha \“src/**/*。test.js \”--require test/setup.js --compilers js: babel-register' – itaied
我在下面评论了你应该如何明确地重建你的数据库,以便依赖于数据库的每个测试。如果你仍然对一些全局钩子感兴趣,我建议你检查一下我发布的另一个答案http://stackoverflow.com/questions/28191243/how-can-i-make-mocha-load-a-helper-js-file- that-defines-global-hooks-or-utilitie/36266849#36266849 - 基本上你可以通过将它放在任何describe块之外来编写全局钩子。我再次不推荐它,因为它不是明确的,很难追踪突变,但取决于你... – aray12