Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Meteor导入目录测试文件不急于加载_Javascript_Reactjs_Mongodb_Testing_Meteor - Fatal编程技术网

Javascript Meteor导入目录测试文件不急于加载

Javascript Meteor导入目录测试文件不急于加载,javascript,reactjs,mongodb,testing,meteor,Javascript,Reactjs,Mongodb,Testing,Meteor,我有一个非常简单的meteor react应用程序。我在imports/startup/simple schema.tests.js Meteor version 1.7.0.5 Using meteortesting:mocha 我正在运行npm运行测试应用程序,所以它应该登录到控制台,但该文件实际上没有运行。但当我将这个代码段添加到我的tests/main.jsTodo时,它会被登录到控制台中。所以我错过了什么 我的目录树 package.json describe('Todos_ite

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

Meteor version 1.7.0.5
Using meteortesting:mocha
我正在运行npm运行测试应用程序,所以它应该登录到控制台,但该文件实际上没有运行。但当我将这个代码段添加到我的
tests/main.js
Todo
时,它会被登录到控制台中。所以我错过了什么

我的目录树

package.json

describe('Todos_item', function () {
  console.log('Todo');
});

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

自1.7版以来的新Meteor应用程序在默认情况下已关闭“急切加载”(这会导致您的问题)

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

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

{
  "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之前的行为,只需从
package.json



如果您不想使用即时加载,您需要从
tests/main.js
文件导入所有测试文件当使用@Fred answer导入测试文件必须
使用require not import
时,还需要添加一件事,尽管我不确定这是否是由于我的节点版本造成的,我使用的是我的节点版本
v6.11.1

--完整应用程序
吗导致问题的原因?是的,我今天很早就知道了,但谢谢你的回答。我在meteor 1.10上,我希望meteor加载所有代码(导入目录)我该怎么办?My package.json没有meteor属性ho@Gobliins,导入目录从来都不急切。如果要自动加载,请将代码移到导入的外部。见:好的观点。这取决于你的试跑者。有些人会预先解析代码来处理ES模块,大多数人不会。您可以要求
@std/esm
启用导入语法,或者将测试放入
.mjs
文件中,以便节点将其解释为ES模块。尽管这需要比6更新的节点版本
  "meteor": {
    "mainModule": {
      "client": "client/main.js",
      "server": "server/main.js"
    }
  },