流星导入目录测试文件不急于加载

Meteor import directory test files not eagerly loading

Meteor version 1.7.0.5
Using meteortesting:mocha

我有一个非常简单的 meteor React 应用程序。我在 imports/startup/simple-schema.tests.js

中添加了一个测试文件
describe('Todos_item', function () {
  console.log('Todo');
});

我是 运行宁 npm run test-app 所以它应该被记录在控制台但是那个文件实际上没有 运行。但是,当我将此代码段添加到我的 tests/main.js 时,Todo 已登录控制台。那我是不是漏了什么。

我的目录树

package.json

{
  "name": "meteor-bootstrap",
  "private": true,
  "scripts": {
    "start": "meteor run",
    "test": "meteor test --once --driver-package meteortesting:mocha",
    "test-app": "TEST_WATCH=1 meteor test --full-app --driver-package meteortesting:mocha",
    "visualize": "meteor --production --extra-packages bundle-visualizer"
  },
  "dependencies": {
    "@babel/runtime": "7.0.0-beta.55",
    "meteor-node-stubs": "^0.4.1",
    "react": "^16.4.2",
    "react-dom": "^16.4.2",
    "react-router-dom": "^4.3.1",
    "simpl-schema": "^1.5.3"
  },
  "meteor": {
    "mainModule": {
      "client": "client/main.js",
      "server": "server/main.js"
    },
    "testModule": "tests/main.js"
  },
  "engines": {
    "node": "8.11.4"
  }
}

任何帮助将不胜感激。提前致谢。

自 1.7 以来的新 Meteor 应用程序默认关闭预先加载(这导致了您的问题)

该行为由 package.json 中的 meteor 部分控制。

要恢复测试的预加载行为,请从 package.json 中删除 testModule 键值对。它应该是这样的:

  "meteor": {
    "mainModule": {
      "client": "client/main.js",
      "server": "server/main.js"
    }
  },

如果要恢复所有文件 1.7 之前的行为,只需从 package.json

中删除整个 meteor 部分

如果您不想使用预先加载,则需要从 tests/main.js 文件

导入所有测试文件

还有一件事要添加,当使用@Fred 回答导入测试文件时必须 use require not import 虽然我不确定这是不是因为我的节点版本我正在使用我的节点版本 v6.11.1