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

时间:2018-09-12 19:57:34

标签: mongodb reactjs testing meteor minimongo

Meteor version 1.7.0.5
Using meteortesting:mocha

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

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

我正在运行npm run test-app,因此应将其记录在控制台中,但该文件实际上未运行。但是,当我将此片段添加到我的tests/main.js Todo时,已登录控制台。所以我错过了什么吗?

我的目录树

enter image description here

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"
  }
}

任何帮助将不胜感激。预先感谢。

2 个答案:

答案 0 :(得分:3)

从1.7开始,新的Meteor应用程序默认已将急切加载关闭(这会引起您的问题)

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

要恢复测试的紧急加载行为,请从testModule中删除package.json键/值对。它应该看起来像这样:

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

如果要恢复所有文件的1.7版之前的行为,只需从meteor删除整个package.json部分


如果您不想使用紧急加载,则需要从tests/main.js文件中导入所有测试文件

答案 1 :(得分:0)

使用@Fred答案导入测试文件时还必须添加一件事,use require not import,尽管我不确定这是由于我的节点版本还是我正在使用我的节点版本v6.11.1