流星导入目录测试文件不急于加载
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
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