如何让ChaiJS期待'在NodeJS' test'中的所有文件中都可用的功能文件夹?

时间:2018-02-26 10:17:01

标签: javascript node.js mocha chai truffle

我使用的是具有摩卡和麦克风的松露。 Chai默认包括在内。

文件树:

├── test
│   ├── ManagedWallet.js
│   ├── AnotherTest.js
│   └── AndAnotherTest.js
└── truffle.js

这是我的测试文件之一:

var expect = require('chai').expect;
var managedWallet = artifacts.require("./ManagedWallet.sol");

contract('ManagedWallet', function(accounts) {

  it("belongs to customer's account address", async function(){
    var contract         = await managedWallet.deployed();
    var customer_account = accounts[1];
    var owner            = await contract.owner.call();

    expect(owner).to.equal(customer_account);
  });

});

由于test文件夹中有很多测试文件,我需要在所有测试文件中加上var expect = require('chai').expect;行。

我有没有办法让全局expect功能可用,而不需要在我的所有测试文件中都有var expect = require('chai').expect;行?

我尝试将var expect = require('chai').expect;行放在truffle.js文件中(在module.exports之上),但它没有工作,我在运行测试时出现ReferenceError: expect is not defined错误。

我的truffle.js文件示例(位于项目的根文件夹中):

module.exports = {

  networks: {
    development: {
      host: "127.0.0.1",
      port: 7545,
      network_id: "*" // match any network
    }
  }

};

1 个答案:

答案 0 :(得分:0)

这是我的.mocharc.json文件,可启用此功能:

{
  "spec": "src/**/*.test.ts",
  "require": ["esm", "ts-node/register", "chai/register-assert", "chai/register-expect", "chai/register-should"],
  "file": "./test-setup.cjs",
  "recursive": true
}